dialog
지점 을 만들고 지점과 병합하려고 할 때 master
. 두 가지 충돌이 있습니다. 해결 방법을 모르겠습니다 CONFLICT (delete/modify)
. 어떻게해야하는지 말씀해 주시겠습니까?
$ git checkout master
$ git merge dialog
CONFLICT (delete/modify): res/layout/dialog_item.xml deleted in dialog and modified in HEAD. Version HEAD of res/layout/dialog_item.xml left in tree.
Auto-merging src/com/DialogAdapter.java
CONFLICT (content): Merge conflict in src/DialogAdapter.java
Automatic merge failed; fix conflicts and then commit the result.
나는 src/DialogAdapter.java
갈등을 해결하고 해결했다 git add src/DialogAdapter.java
. 다른 무엇을해야합니까?
답변
충돌 메시지 :
충돌 (삭제 / 수정) : res / layout / dialog_item.xml이 대화 상자에서 삭제되고 HEAD에서 수정되었습니다.
이는 res/layout/dialog_item.xml
병합중인 ‘dialog’분기에서 삭제되었지만 HEAD (병합중인 분기)에서 수정 되었음을 의미합니다 .
그래서 당신은 여부를 결정해야
- ”
git rm res/layout/dialog_item.xml
“를 사용하여 파일 제거
또는
- ”
git add res/layout/dialog_item.xml
” 를 사용하여 HEAD (아마도 편집 한 후)의 버전을 수락하십시오.
그런 다음 ” git commit
“로 병합을 마무리 합니다.
git은 원하지 않는 (희귀 한) 병합 커밋을 만들고 있음을 경고합니다. 아마도 그 사건이 덜 드문 시절부터 남아있을 것입니다.
답변
나는 보통 그냥 달려 git mergetool
되며 수정 된 파일을 유지하거나 삭제 된 상태로 유지할 것인지 묻는 메시지가 표시됩니다. IMHO는 파일 당 여러 명령 대신 하나의 명령이기 때문에 가장 빠른 방법입니다.
특정 서브 디렉토리에 여러 개의 삭제 된 파일이 있고 파일을 삭제하여 모든 파일을 해결하려는 경우 다음을 수행 할 수 있습니다.
yes d | git mergetool -- the/subdirectory
는 d
각 파일을 삭제 선택하기 위해 제공됩니다. m
수정 된 파일을 유지하는 데 사용할 수도 있습니다 . 실행할 때 표시되는 프롬프트에서 가져옵니다 mergetool
.
Use (m)odified or (d)eleted file, or (a)bort?
답변
창에서 Git Gui를 사용하는 경우
- 병합 중단
- 목표 지점에 있는지 확인하십시오
- 탐색기에서 충돌하는 파일 삭제
- Git Gui (F5)의 변경 사항을 다시 검색
- 충돌하는 파일이 삭제되었습니다.
- 커밋 메뉴에서 커밋 할 스테이지 변경 파일 선택 (Ctrl-I)
- “삭제 된 충돌 파일”과 같은 커밋 주석을 입력하십시오.
- 커밋 (Ctrl-enter)
- 이제 병합을 다시 시작하면 희망적으로 작동합니다.