2012-12-03 4 views
12

을 만들-무시 후 단일 .gitignore를 얻는 방법 : 방법에 몇 번 실패했고, 내가 가진 있지만자식 SVN 사용 나는 힘내와 SVN 저장소 가져온

git svn clone --preserve-empty-dirs --stdlayout svn+ssh://... SVN.git 

그것은 결국 성공 않았다

git svn fetch 

그러나 결국 모든 것이 정상적으로 보입니다. (지금 쓸 때 비록 내가뿐만 아니라 추가 fetch ES에 --preserve-empty-dirs를 제공 한 여부를 궁금해하기 시작 편집 :아니, 난 안 내 댓글 울부 짖는 소리를 참조을..)

그럼 내가 만들고 싶었 .gitignore 그래서 나는

git svn create-ignore 

했던 그리고이뿐만 아니라 성공했다.

하지만 최종 결과는 만족스럽지 않습니다. 많은 폴더에 .gitignore 파일을 많이 생성했습니다. SVN에 svn:ignore 속성이있을 때마다 Git가 해당 .gitignore 파일을 생성 한 것으로 보입니다.

단일 루트 .gitignore 파일로 병합하고 싶습니다. 이것은 git에서 훨씬 더 유연하므로 와일드 카드가있는 (또는없는 경우) 하위 디렉토리에서는 무시할 수 있으므로 무시할 수 있습니다. 어떤 식 으로든 나는 그 "서브 .gitignore s"를 루트에서 하나의 것으로 자동 변환하는 것이 가능하다고 생각합니다.

내가 "SVN 사람들이"나와 함께 행복하지 않을 것이기 때문에 .gitignore 20 개 이상의 파일을 짓는 것을 가지고 싶습니다 ...

+0

'git svn fetch'는 ('git help svn'이 보여주는 것에서) 판단해서'--preserve-empty-dirs'를 받아들이지 않는 것처럼 보입니다. –

+1

실제로 "git svn fetch"는 플래그에 태그를 지정하지 않지만'[svn-remote "svn"] preserve-empty-dirs = true'와 같이 .gitconfig에 추가 할 수 있습니다. 이 파일을 활성화 시키려면 다음을 추가해야합니다 :'[svn-remote "svn"] added-placeholder = .gitignore' –

답변

23

나는 해결책을 발견했다. create-ignore 대신 show-ignore을 사용하고 출력을 파일에 저장해야합니다.

그래서 저장소는 다음 명령을 실행 복제 후 :

git svn show-ignore > .gitignore 

를 저장소 루트에서 당신은 .git 디렉토리가 어디.

+3

내가 이것을하면 유니 코드 인코딩을 가진 .gitignore 파일이 생성됩니다. 이것은 수동으로 .gitignore의 인코딩을 UTF-8로 변경할 때까지 무시 무시으로 만들었습니다. –