2009-09-30 2 views
21

누군가 이미 심볼릭 링크를 따르는 방법을 물었습니다. 심볼릭 링크 된 디렉토리의 대답은이지만 심볼릭 링크 된 파일의 경우는이 아닙니다. 1 년 전이었습니다.git이 심볼릭 링크를 따를 수있게하기 (다시)

질문 : 어떻게하면 git이 symlink를 따라 가서 그 파일이 참조하는 파일을 추가 할 수 있습니까?

다음은 이전 질문 인 How can I get git to follow symlinks?입니다. git이 일반적으로 수행하는 작업에 대한 질문이 있습니다. How does git handle symbolic links?. 나는이 행동을 바꾸는 길을 찾고있다.

당신이 신경 쓰이는 경우 : 나는 유닉스에서 git 1.5.4.3을, Mac에서 git 버전 1.6.0을 실행 중이다.

답변

22

나는 아무 방법도 없다고 확신한다.

또한 불안정하고 정의되지 않은 동작처럼 들리지만 파일 버전간에 이동하고 쓰기 작업이 필요할 때 어떻게해야합니까? 특히 리비전이 추가되기 전에 리비전을 체크 아웃하면 리파지토리 외부의 파일 내용을 제거하기를 원합니까? 현재로 돌아와 파일을 다시 만들거나 심볼릭 링크 자체가 수정 된 경우 어떻게됩니까? 심볼릭 링크 자체를 추적해야합니까?

본질적으로 동일한 질문에 대한 답변으로이 줄의 내용은 작년 말 said on the git mailing list입니다. 하드 링크를 사용하는 방법에 대한 다음 자식 아무 생각의 링크 된 파일을 (를합니까?)

+0

이들은 몇 가지 훌륭한 점입니다. - 감사합니다. – Peter

+1

예, 불행히도. 어떤 경우에는 링크를 따라 가면 정말 좋을 것입니다. 거기에 답장 중 하나에 제안 된 접근 방식이 있습니다 - repo 파일을 외부에있는 repo 파일을 repo에 심볼릭 링크로 만들고 가능하면 repo 내에서 여전히 심볼릭 링크를 포함시킵니다. 희망하는 것을 할 수있는 길을 찾길 바랍니다! – Cascabel

6

. 그러면 Git은 링크 된 파일의 내용을 볼 것이다. 단점은 누군가가 체크 아웃 할 때 파일이 체크 아웃 된 디렉토리에 일반 파일로 생성된다는 것입니다. 왜냐하면 망할 놈이 링크로 인식하지 못하기 때문입니다.

11

당신은 하드 링크 대신 소프트 링크 (일명, 심볼릭 링크)를 사용할 수없는 방법

2

하드 링크를 사용할 때의 문제는 파일에 변경 사항을 쓰는 것이 아니라 다른 위치로 파일을 쓰면 파일 시스템에 새로운 inode가 있고 하드 링크가 더 이상 해당 파일을 가리 키지 않는다는 것입니다. 그래서 파일은 동기화되지 않습니다.

관련 문제