2012-01-24 5 views
5

내 로컬 git 저장소의 변경 사항을 SVN 서버에 병합하려면 git svn을 사용하고 있습니다. 그러나 git svn dcommit을 발행하면 내 소스 트리에있는 .gitignore 파일을 실제로 커밋합니다. SVN 저장소를 로컬에서 체크 아웃 한 후에도 svn : ignore 속성을 설정하고 (재귀 적으로 .gitignore를 무시할 파일 중 하나로 나열한 다음) 해당 속성을 SVN에 직접 커밋합니다..gitignore 파일을 SVN 밖으로 유지할 수 있습니까?

이것은 의도 한 동작입니까? 벌레? 누구든지 SVN에서 .gitignore를 지켜야한다는 것을 알고있는 일이 있습니까?

내 팀의 비 git 사용자가이 파일을보고 삭제하려고 할 때 다음에 내가 rebase/dcommit으로 갈 때 SVN에 원치 않는 파일이 많이 생길 것입니다.

답변

8

.gitignore 파일 대신 Git의 repo 전용 "제외"파일을 사용할 수 있습니다. "제외"파일은 $GIT_DIR/info/exclude에 있습니다 (여기서 $GIT_DIR은 Git 저장소 디렉토리이며, 보통 .git입니다). 이 파일의 형식은 .gitignore 파일의 형식과 완전히 동일합니다. 차이점은 저장소 별 파일이므로 저장소에만 있습니다. 다른 저장소 (예 : git clone 또는 git svn dcommit을 통해)로 전파되지 않습니다.

.gitignore 개의 파일을 SVN 저장소에서 생략 할 수는 없지만 Git에 보관하십시오. 이렇게하려고하면 git-svn이 SVN 서버에서 가져 오는 커밋과 로컬 커밋이 일치하지 않게됩니다. 즉, 로컬 저장소의 기록은 SVN의 기록과 조정 가능하지 않습니다. 영구적으로 동기화되지 않습니다.

+0

repo-ignore에 대해 알아두면 좋을뿐만 아니라, 그 성가신 .gitignore 파일을 SVN에서 지울 수없는 유일한 사람은 아닙니다! – ThaDon

+0

파일은 이제 복수형없이'$ GIT_DIR/info/exclude'라고합니다. –

+0

@ JannikJochem 제 생각에 그건 저의 오타라고 생각합니다. 내가 아는 한, 항상 "제외"는 아니며 "제외"는 아닙니다. 그 점을 지적 해 주셔서 감사합니다! :) –

관련 문제