나는 병합 갈등을 만났습니다.어떻게 병합을 중단 할 수 있습니까?
질문
나는 Git Pull을 사용하고 병합 충돌을했습니다.
unmerged: _widget.html.erb
You are in the middle of a conflicted merge.
나는 파일의 다른 버전이 좋고 내 변화가 모두 버려야한다는 것을 알고 있습니다.어떻게해야합니까?
답변
당신의 풀이 실패했기 때문에 머리 (머리가 아님)는 지사에서 마지막 "유효한"커밋입니다.
git reset --hard HEAD
원하는 다른 작품은 변경 사항을 변경하여 변경 사항을 탈 수있게하는 것입니다.
이전 버전의 GIT를 사용하면 "그들의"병합 전략을 사용할 수있었습니다.
git pull --strategy=theirs remote_branch
그러나 이것은 Junio Hamano (Git 관리자) 가이 메시지에서 설명한 것처럼 이래로 제거되었습니다.링크에서 언급했듯이 대신 다음을 수행합니다.
git fetch origin
git reset --hard origin
답변
Git 버전이> = 1.6.1 인 경우 Git Reset -merge를 사용할 수 있습니다.
또한 @michael Johnson이 언급해서 Git 버전이> = 1.7.4 인 경우 GIT Merge --abort를 사용할 수도 있습니다.
항상 병합을 시작하기 전에 커밋되지 않은 변경 사항이 없는지 확인하십시오.
Git Merge Man 페이지에서
Git Merge - merge_head가있는 경우 Git Reset -merge와 동일합니다.
merge_head가 병합이 진행 중일 때 나타납니다.
또한 병합을 시작할 때 커밋되지 않은 변경 사항에 대해서는 다음과 같습니다.
병합을 시작하기 전에 커밋하기를 원하지 않는 경우 병합을 마친 후 병합을 마치거나 중단 한 후 병합을 마무리하기 전에 Git을 숨기십시오.
답변
git merge --abort
현재의 충돌 해결 프로세스를 중단하고 재구성을 시도하십시오. 사전 병합 상태. 병합이 발생하지 않은 워크 트리가 변경되지 않은 경우 시작, GIT 병합 - 활성화는 경우에 따라 이러한 변화를 재구성하십시오.따라서 항상 권장됩니다 GIT 병합을 실행하기 전에 변경 사항을 확약하거나 숨 깁니다. Git 병합 - 활성화는 git 재설정 - 밀가루에 해당합니다. merge_head가 있습니다.
http://www.git-scm.com/docs/git-merge.
답변
나는 그것이 당신이 필요로하는 git 재설정이라고 생각합니다.
Git이 되돌리기를 되돌릴 수 있습니다. SVN 되돌리기를 되돌리게합니다. SVN 되돌리기 - 되돌리기는 되돌리기가 되돌리기를 삭제합니다 (커밋되지 않은) 변경 사항은 저장소에서 현재 버전으로 파일을 반환합니다.
Git Reset은 SVN 되돌리기와 동일한 SVN을 수행해야합니다. 즉, 원하지 않는 변경 사항을 폐기해야합니다.
답변
이 특별한 사용 사례에서는 병합을 정말로 중단시키고 싶지 않으며 특정 방식으로 충돌을 해결할 수 있습니다.
다른 전략으로 병합을 재설정하고 수행 할 필요가 없습니다.갈등은 Git에 의해 올바르게 강조되었으며 다른 측면 변경을 수락 해야하는 요구 사항은이 파일에만 적용됩니다.
충돌 Git의 unmerged 파일의 경우 인덱스의 파일의 공통베이스, 로컬 및 원격 버전을 사용할 수 있습니다.(이것은 Git MergeTool의 3 방향 Diff 도구에서 사용하기 위해 읽은 곳입니다.) Git Show를 사용하여 볼 수 있습니다.
# common base:
git show :1:_widget.html.erb
# 'ours'
git show :2:_widget.html.erb
# 'theirs'
git show :3:_widget.html.erb
원격 버전을 사용하기 위해 충돌을 해결하는 가장 간단한 방법은 다음과 같습니다.
git show :3:_widget.html.erb >_widget.html.erb
git add _widget.html.erb
또는 git> = 1.6.1 :
git checkout --theirs _widget.html.erb
답변
git> = 1.6.1 :
git merge --abort
이전 버전의 GIT의 경우이 작업을 수행합니다.
git reset --merge
또는
git reset --hard
출처:https://stackoverflow.com/questions/101752/i-ran-into-a-merge-conflict-how-can-i-abort-the-merge
최근댓글