Git 병합 중단


119

Git을 VCS로 사용하는 프로젝트를 진행 중입니다. xyz마스터의 본선 지점에서 잘라낸 지점을 얻었습니다 . 잠시 작업 한 후 코드를 커밋하고 브랜치 메인 라인을 가져 왔습니다.

당김은 괜찮 았습니다. 그런 다음 코드를 마스터와 병합했습니다. 병합 후 특정 파일에 문제가 발생했습니다. 병합 후 코드를 커밋하지 않았습니다. 누군가이 병합을 중단하고 현재 작업중인 지점을 병합하기 전의 상태로 가져 오는 방법을 안내해 주시겠습니까?



브랜치의 이전 커밋을 복원 할 수 없습니까?
Wutipong Wongsakuldej


1
Git에서는 이전 커밋의 변경 사항을 되 돌리는 새 커밋revert 을 만드는 명령의 이름 이므로 여기에서 찾고있는 단어가 아닐 수 있습니다. 내가 한 편집 명확하게 질문을.
Scott Weldon

답변:


296

커밋하지 않는 한 입력 할 수 있습니다.

git merge --abort

명령 줄에서 제안한대로.


4
나는 이것을 시도 할 때이 메시지를 받았다 : error: Entry 'MyFile.java' not uptodate. Cannot merge. fatal: Could not reset index file to revision 'HEAD'.
SMBiggs

1
@Ahmad git은 커밋되지 않은 변경 사항 (이미 추적 된 파일)이있는 병합을 시작하지 않습니다. 자식은 모르는 것을 보호 할 수 없습니다.
Timothy Truckle 19-04-02

네, 당신은 내 코드를 잃어 버림으로써 그것을 배웠습니다. 여기에 내 문제에 대한 세부 사항, 내가 문제에 빠진 방법이 있습니다. stackoverflow.com/questions/55474092/how-to-undo-the-git-abort
아마드

23

병합 충돌이 발생하는 동안 "git status"를 수행하면 git이 가장 먼저 보여주는 것은 병합을 중단하는 방법입니다.

병합 충돌이 발생하는 동안 git 상태 출력


좋습니다, 이것은 git reset HEAD <file>git 확장 소스 컨트롤에서 축소 가능한 "병합"을 효과적으로 제거한 것을 제안했습니다 => 그러면 충돌을 해결하거나 GIT 확장 목록에서 변경 사항을 되돌릴 수 있습니다. :)
jave.web

6

사실은 이미 웹에서이 작업을 수행하는 방법을 설명하는 많은 리소스가 있습니다.

Git : 커밋을 역 병합하는 방법?

Git : 커밋을 역 병합하는 방법?

Git의 블로그 (archive.org의 Wayback Machine에서 가져옴)의 Undoing Merges ,

그래서 저는 다음 중 일부를 요약하겠습니다.

  1. git revert <merge commit hash>
    이것은 병합을 취소했다는 추가 "되돌리기"커밋을 생성합니다.

  2. git reset --hard <commit hash *before* the merge>
    이 재설정 기록은 병합을 수행하기 전입니다. 병합 후에 커밋이 있으면 cherry-pick나중에 커밋해야합니다 .

그러나 솔직히 여기에 가이드는 내가 다이어그램, 설명 할 수 무엇보다 낫다! :)


1
링크가 사라졌습니다. 한숨.
SMBiggs

@ScottBiggs 나는 그들이 그것을 git-scm.com/book/en/v2/… 로 옮겼다 고 생각한다 . 데니스, 이걸 읽으면 확인할 수있어? 그리고 그것이 정말로 똑같다면 대답의 링크를 업데이트 할 수 있습니까? 감사합니다!
Fabio는 Monica를 복원한다고
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.