git traverse 소프트 심볼릭 링크를 만드는 방법은 무엇입니까?

git traverse 소프트 심볼릭 링크를 만드는 방법은 무엇입니까?

Git이 심볼릭 링크를 트래버스하고 이를 대상 파일로 처리하도록 하는 방법이 있습니까?

  • 나는 하드 링크를 사용하고 싶지 않습니다. 하드 링크는 파일 시스템 전체에서 작동하지 않으며 디렉토리에서도 사용할 수 없습니다.
  • 파일을 복사하고 싶지 않고 두 파일을 수동으로 동기화해야 합니다.
  • 바인드 마운트를 사용하고 싶지 않습니다. sudo가 필요하며 fstab이를 영구적으로 만들려면 편집해야 합니다 . 파일에는 적용할 수 없습니다.
  • 패치된 git 바이너리를 사용하고 싶지 않습니다. 표준 git을 사용하여 수행하고 싶습니다.
  • 위험해도 상관없어요 나는 위험에 아무런 문제가 없습니다.
  • 이것이 의미가 있는 특정 사용 사례가 있습니다. 그것이 무엇인지는 중요하지 않습니다.
  • 이것은 우연한 일이므로 전 세계적으로 이 작업을 수행할 수 있는 방법을 찾고 있지 않습니다.

나는 Git 개발자 자신이 이 아이디어를 좋아하지 않는다는 것을 알고 있습니다. 정말 끔찍해요. 나는 이것이 traverse_symlinks=True매뉴얼에서 몇 가지 옵션을 찾을 가능성을 배제한다고 생각합니다 . 나는 그 해결책이 일종의 난해한 속임수나 흑마술과 관련될 것이라고 예상했습니다. 괜찮아요.

답변1

아니요, 거기는 아닙니다. Git은 이를 지원하지 않습니다.

Git은 파일 시스템에 상주해야 하는 저장소의 전체 상태를 제어합니다. 저장소나 작업 트리에 파일을 쓸 때 기존 파일을 삭제하고 바꾸거나(대부분의 작업 트리 파일의 경우) 새 파일을 쓰고 그 O_EXCL자리에서 이름을 바꿉니다( .git디렉토리 문서에 있는 대부분의 파일의 경우). Git 기여자로서 저는 Git이 파일을 정상적으로 열어서 작성한다는 사실을 몰랐기 때문에 심볼릭 링크를 통과할 가능성이 없습니다.

목표를 달성하는 방법은 실제 목표가 무엇인지에 따라 다르지만 Git이 심볼릭 링크를 통과하도록 하는 것은 작동하지 않기 때문에 해결책이 아닙니다.

관련 정보