개발관련/Git

git rebase 실행 취소

Rateye 2021. 6. 15. 10:28
728x90
반응형
질문 : git rebase 실행 취소

누구든지 git rebase를 쉽게 실행 취소하는 방법을 알고 있습니까?

떠오르는 유일한 방법은 수동으로 진행하는 것입니다.

  • git checkout the commit parent to both the branch
  • 그런 다음 거기에서 임시 분기를 만듭니다.
  • 모든 커밋을 손으로 체리 선택
  • 내가 리베이스 한 브랜치를 수동으로 생성 한 브랜치로 교체

내 현재 상황에서는 두 지점에서 커밋을 쉽게 찾을 수 있기 때문에 작동 할 것입니다 (하나는 내 물건이고 다른 하나는 동료의 물건이었습니다).

그러나 내 접근 방식은 저에게 차선책이며 오류가 발생하기 쉽습니다 (내 자신의 브랜치 중 2 개를 방금 리베이스했다고 가정 해 보겠습니다).

어떤 아이디어?

설명 : 많은 커밋이 재생되는 동안 리베이스에 대해 이야기하고 있습니다. 단 하나가 아닙니다.

반응형
답변

가장 쉬운 방법은 rebase가 reflog 에서 시작되기 직전에 있었던 브랜치의 헤드 커밋을 찾는 것입니다.

git reflog

--hard 옵션으로 재설정하기 전에 절대적으로 확신하는 것에 대한 일반적인 경고 포함).

참조 로그에서 이전 커밋이 HEAD@{5}

git reset --hard HEAD@{5}

Windows에서는 참조를 인용해야 할 수 있습니다.

git reset --hard "HEAD@{5}"

git log HEAD@{5} ( Windows : git log "HEAD@{5}" )를 수행하여 후보 이전 헤드의 기록을 확인할 수 있습니다.

분기 별 reflog를 비활성화하지 않은 경우 rebase가 최종 헤드에 다시 연결하기 전에 분기 헤드를 분리 git reflog branchname@{1} 최근에 이것을 확인하지 않았기 때문에 나는 이것을 다시 확인할 것입니다.

기본적으로 모든 reflog는 비 베어 리포지토리에 대해 활성화됩니다.

[core]
    logAllRefUpdates = true
출처 : https://stackoverflow.com/questions/134882/undoing-a-git-rebase
728x90
반응형