2013-01-05 3 views
0

가능한 중복은 : git merge conflict를 해결하는 방법은 무엇입니까?


Trouble merging with Git

은 내가 자식의 repo가 ​​(일부 파일을 삭제) 몇 가지 변경을 한 다음 최선을 다하고 다운로드. 그런 다음 나는 git checkout -b "new branch"를 수행했다. 여기 나는 파일을 삭제하지 못했지만 몇 가지 변경을하고 커밋했습니다. 지금은 다시 내 마스터 지점에 가서 new_branch_i_created 자식 병합을하려고 노력하지만 그건 말했다 : 내가 잘못 뭐하는 거지

fatal: 'merge' is not possible because you have unmerged files. 
Please, fix them up in the work tree, and then use 'git add/rm <file>' as 
appropriate to mark resolution and make a commit, or use 'git commit -a'. 

? 내 마스터 지점에서 새로운 지점에 체크 아웃하려고하면

그리고는 말한다 : 자식에서

GDCatalog/.classpath: needs merge 
GDCatalog/src/com/cyrilmottier/android/gdcatalog/CatalogActivity.java: needs merge 
GDCatalog/src/com/cyrilmottier/android/gdcatalog/PagedViewActivity.java: needs merge 
GreenDroid-GoogleAPIs/.classpath: needs merge 
GreenDroid/.classpath: needs merge 
GreenDroid/src/greendroid/widget/PagedView.java: needs merge 
error: you need to resolve your current index first 
+0

어떻게 오류를 해결하는 방법은 무엇입니까? 두 번째 brach와 master 브랜치를 병합하기 위해 어떤 명령을 실행합니까? – user1667307

+0

질문 : 'git merge'를 시도하기 전에 마지막 명령은 무엇 이었습니까? 병합 중에 병합을 방지하는 커밋되지 않은 변경 사항이나 병합 중 병합 충돌 (예 :'.git/MERGE_HEAD')이 있습니까? –

답변

2

오류 메시지가 모든 것을 말한다. 병합 커밋을 제출하기 전에 해결해야하는 두 가지 분기 간의 변경 사항을 병합 취소했습니다. 파일이 두 브랜치에서 수정되었으므로 이러한 병합 충돌이 발생합니다.

이 문제를 해결하려면 충돌하는 파일을 편집해야합니다. 각 파일에 대해 병합을 해결해야합니다. 갈등은 <<<<<<<<<<<, ===========>>>>>>>>>> 마커로 둘러 쌉니다. 문제를 해결하는 방법은 변경 사항 (변경 사항을 유지하려는 경우, 원격 지점의 변경 사항 또는 둘의 조합)에 따라 달라집니다.

모든 충돌을 해결했으면 각 파일에 대해 git add을 수행해야합니다. 그런 다음 git commit. 미리 채워진 커밋 메시지는 이것이 병합 커밋이고 일부 충돌이 해결되었음을 나타냅니다. 코딩 스타일이 커밋 메시지의 특정 형식을 지정하지 않으면 편집하지 않아도됩니다.

그래서, 요약, 당신은해야 할 것이다 :

$ emacs GDCatalog/.classpath 
... resolve conflict ... 
$ git add GDCatalog/.classpath 
... do the same for all other files ... 
$ git commit 
관련 문제