심볼릭 링크를 무시하도록 Git에 지시 할 수 있습니까? 저는 혼합 Linux/Windows 환경에서 작업하고 있습니다. 아시다시피, 심볼릭 링크는이 둘 사이에서 매우 다르게 처리됩니다..gitignore의 심볼릭 링크를 무시하십시오.
10
A
답변
1
사용 자식 버전> = 1.6
힘내 일반 파일과 같은 심볼릭 링크를 치료하는 데 사용하지만, 새로운 자식 버전 (> = 1.6) 파일이 심볼릭 링크를 넘어 있는지 확인하고 발생합니다 치명적인 오류.
는 예컨대 :
# git init
# mkdir newdir
# touch newdir/foo
# git add newdir/foo
# git commit -m 'add foo'
# mv newdir /tmp/
# ln -s /tmp/newdir
# touch newdir/bar
# git add newdir/bar
fatal: 'newdir/bar' is beyond a symbolic link
# git add/tmp/newdir
fatal: '/tmp/newdir' is outside repository
# git --version
git version 1.7.3.4
+2
git 1.7.9.5는 저장소 외부의 내용을 가리킬 때에도 symlink를 추가합니다 ... – Izkata
1
는 아니, 전 세계적으로이 작업을 수행 할 수 없습니다. 그러나 심볼릭 링크가 많이있는 경우에는 repo의 .gitignore 파일에 쉽게 추가 할 수있는 bash 스크립트가 있습니다.
for f in $(git status --porcelain | grep '^??' | sed 's/^?? //'); do
test -L "$f" && echo $f >> .gitignore; # add symlinks
test -d "$f" && echo $f\* >> .gitignore; # add new directories as well
done
+0
굉장한 솔루션! 아주 잘 작동합니다 :) 대단히 감사합니다! –
정확히 무시할 것입니까? .gitignore에 원하는 경우 symlink를 추가하기 만하면됩니다. –
네,하지만 파일 이름을 추가하면 심볼릭 링크 된 파일도 무시됩니다 ... 전체 경로를 지정할 수는 있겠지만. 내가 설정 파일에 붙어있을 수있는 뭔가를 기대했다 ... – Andrei
최선의 방법은'find * -type l '로 목록을 생성하는 것일 수도있다. – Cascabel