2013-06-17 1 views
2

나는 A 주제 분기를 과거에 분기 한 devel 지점을 가졌습니다..git 최근에 일부 파일 만 삭제했습니다. 이전 분기로 병합하려고하면 무시 된 파일이 충돌로 나타납니다

devel은 항상 A (모든 develA에 반영되어야 함)이되도록 의도되었습니다. 오랜 시간 후, 나는 이제 (.gitignore 에드 파일 그것에서) 그 변경 사항을 반영하기 위해 .. 다시 Adevel을 병합하기 위해 노력하고있어하지만 나에게 병합을 제공 .gitignore

updated the index of devel to reflect it.에 일부 파일을 추가했습니다 무시 된 파일에서 충돌합니다. 나는 그 무시 된 파일을 A에 넣고 싶지 않습니다. 어떻게해야 그걸 자식에게 알릴 수 있습니까?

스크린 샷 도움이된다면 ... enter image description here

답변

1

차라리, 확인하고, Adevel를 병합하기 전에 모든 devel 무시 파일은 A에서뿐만 아니라 무시하는 것입니다.

그 트릭은 A의 모든 항목을에서 제거하고 .gitignore 콘텐츠를 업데이트 한 다음 모든 항목을 다시 추가하는 것입니다.

git checkout A 
# update the .gitignore file from devel in A 
git checkout devel -- .gitignore 

# remove/add everything 
git rm --cached -r . 
git add . 
git commit -m "new commit with devel gitignore files out" 

# then 
git merge devel 
+0

감사합니다. 하지만 글로벌 gitignore와 함께 모든 것을 제거/추가 할 수 있습니까? (모든 브랜치에서 모든 것을 제거/추가 할 수 있도록) 그렇지 않으면 기본적으로'devel' (새로운'.gitignore'에 따라 모든 것을 제거/추가)과 동일한 작업을 수행하기 때문입니다. 그 이후 병합은 의미가 없다 ... (의미 론적 관계를 제외하고) 그리고 나는 모든 A, B, C와 함께 이것을해야 할 것이다 ... – laggingreflex

+1

@laggingreflex 나는 병합을 가정 할 것이다. 무의미한 점이 있다면, devel을 모든 브랜치에 병합 할 것입니다. 모든 브랜치는 devel을 무시하지 않고 파일을 변형 할 수 있으므로 병합합니다. 그리고 각 브랜치 (http://stackoverflow.com/a/3847586/6309)에 대해 제안 된 일련의 명령을 쉽게 스크립팅 할 수 있어야합니다. – VonC