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
반응형
'개발관련 > Git' 카테고리의 다른 글
다른 git 저장소에서 커밋을 cherry-pick 하는 방법 (0) | 2021.06.17 |
---|---|
Git에서 파일을 이동 / 이름 변경하고 기록을 유지하는 방법 (0) | 2021.06.16 |
Git-모든 곳에서 node_modules 폴더 무시 (0) | 2021.06.14 |
Git에서 파일의 일부만 커밋 (0) | 2021.06.13 |
새 저장소에 대한 'git push'에 원격 원본이 이미 있습니다. (0) | 2021.06.13 |