찾다

 >  Q&A  >  본문

git이 브랜치를 마스터에 병합하고 이를 github에 제출한 후 github에서 병합을 취소하려면 어떻게 해야 합니까?

말씀드린 것처럼 미완성 코드를 브랜치에서 마스터로 머지하고 git이 github에 푸시한 뒤 dev에서 계속해서 코드를 개선하다가 머지를 철회하고 싶을 때, 로컬 병합이 불가능합니다. github에 푸시했는데 왜 충돌이 발생했는지 모르겠습니다.

淡淡烟草味淡淡烟草味2821일 전866

모든 응답(1)나는 대답할 것이다

  • 巴扎黑

    巴扎黑2017-05-02 09:49:43

    로컬에서 병합하는 경우 git reflog을 통해 과거 작업을 볼 수 있으며 git reset --hard HEAD@{n}를 통해 리플로그의 n단계로 돌아갈 수 있습니다.

    그런 다음

    원격 마스터를 이전 상태로 되돌릴 수 있습니다 git push origin master -f


    사실 병합을 하면 병합 커밋이 생성됩니다. 로컬에서 먼저 할 수도 있습니다

    이때 로컬 마스터도 최신 상태여야 합니다. 먼저 git checkout master 기록을 살펴본 다음 git log 커밋 해시를 기반으로 롤백합니다. git reset --hard xxxxxx

    그런 다음 마찬가지로

    원격 마스터를 업데이트할 수 있습니다git push origin master -f


    두 가지 방법은 동일합니다. 커밋을 삭제했는데, 커밋이 원격으로 존재하기 때문에 이때 200년 간의 기록 정보가 일치하지 않으므로 이 커밋 후에 새로 추가하지 않는 한 직접

    git push origin master만들 수는 없습니다. 커밋하고 코드를 수동으로 수정하고 병합 전 상태로 롤백하므로
    할 필요 없이 직접 -f업데이트git push origin master할 수 있습니다.

    회신하다
    0
  • 취소회신하다