로컬 분기 삭제 실행 취소
방금 잘못된 분기를 삭제했습니다. 몇 가지 실험 변경 사항이 필요합니다.git branch -D branchName
.
지점을 복구하려면 어떻게 해야 합니까?
Git reflog를 사용하여 분기의 마지막 커밋의 SHA1을 찾을 수 있습니다.이 시점부터 다음을 사용하여 분기를 재생성할 수 있습니다.
git branch branchName <sha1>
편집: As @seagullJS가 말하길,branch -D
명령은 sha1을 알려주기 때문에 아직 터미널을 닫지 않았다면 정말 쉬워집니다.예를 들어 이렇게 하면 이름이 지정된 분기가 삭제된 후 즉시 복원됩니다.master2
:
user@MY-PC /C/MyRepo (master)
$ git branch -D master2
Deleted branch master2 (was 130d7ba). <-- This is the SHA1 we need to restore it!
user@MY-PC /C/MyRepo (master)
$ git branch master2 130d7ba
지점의 마지막 SHA1을 알고 있다면 시도해 볼 수 있습니다.
git branch branchName <SHA1>
다음을 사용하여 SHA1을 찾을 수 있습니다.git reflog
솔루션에 설명되어 있습니다. 링크를 클릭합니다.
분기를 방금 삭제한 경우 터미널에 다음과 같은 내용이 표시됩니다.
Deleted branch branch_name(was e562d13)
- 여기서 e562d13은 고유 ID("SHA" 또는 "해시")이며, 삭제된 분기를 복원할 수 있습니다.
분기를 복원하려면 다음을 사용합니다.
git checkout -b <branch_name> <sha>
예:
git checkout -b branch_name e562d13
다음 단계를 수행합니다.
1: 입력:
git reflog show
모든 커밋 기록이 표시됩니다. 마지막으로 반환할 커밋이 있는 sha-1을 선택해야 합니다.
2: 선택한 Sha-1 ID로 지점 이름을 만듭니다(예: 8c87714).
git branch your-branch-name 8c87714
아직 삭제를 푸시하지 않은 경우 다음 작업을 수행할 수 있습니다.
$ git checkout deletedBranchName
첫 번째: .git 디렉터리를 포함한 전체 디렉터리를 백업합니다.
두 번째: 사용할 수 있습니다.git fsck --lost-found
손실된 커밋의 ID를 가져옵니다.
세 번째: 손실된 커밋에 기반을 바꾸거나 병합합니다.
네 번째: -D나 --force with git를 사용하기 전에 항상 두 번 생각하세요 :)
이러한 오류를 복구하는 방법에 대한 이 좋은 설명도 읽을 수 있습니다.
편집: 그건 그렇고, 뛰지 마.git gc
(또는 스스로 실행되도록 허용 - 즉, 실행하지 않음)git fetch
또는 이와 유사한 모든 것) 또는 커밋을 영원히 잃을 수 있습니다.
다음을 통해 분기를 삭제한 경우Source Tree
삭제된 분기의 SHA1을 쉽게 찾을 수 있습니다.View -> Show Command History
.
다음 형식을 사용해야 합니다.
Deleting branch ...
...
Deleted branch %NAME% (was %SHA1%)
...
그럼 그냥 원래 답을 따르세요.
git branch branchName <sha1>
감사합니다, 효과가 있었습니다.
git branch new_branch_name
sha1
git checkout new_message_name
//이전 분기에 체크인된 이전 파일을 볼 수 있음
이것은 저에게 효과가 있었습니다.
git fsck --full --no-reflogs --unreachable --lost-found
git show d6e883ff45be514397dcb641c5a914f40b938c86
git branch helpme 15e521b0f716269718bb4e4edc81442a6c11c139
IntelliJ IDEA를 사용하는 경우Event Log
다음과 같은 것을 보게 될 것입니다.
그리고 단순히 지점을 복구할 수도 있습니다.
Jetbrain IDE(골랜드, phpstorm 등)의 GUI를 사용하여 분기를 삭제한 경우
에 가다
git windows(left-down corner of IDE)
->console tab
의 로그를 할 수 이 을 찾을 수 .-> 별 IDE 로 이 의 IDE 명 로 그 를 SHA1 을
우선, 당황하지 마세요.당신은 올바른 위치에 있습니다.힘내세요, 우리는 모두 실수를 해요!그게 우리가 배우는 방법입니다!당신의 건강과 행복과 성공을 기원합니다!
오, 정답!이미 알고 계셨던 것 같은데요!
그렇지 않다면! 여기 답이 있습니다.
use git reflog
git checkout branch branch_name commitsha
자세한 설명을 위해 두 번째 명령 branch_name은 분기에 지정할 이름입니다. commitsha는 체크아웃할 sha 번호입니다. git reflog 명령에서 얻을 수 있습니다.
다시 한번 해피 코딩!
언급URL : https://stackoverflow.com/questions/4025916/git-undo-local-branch-delete
'programing' 카테고리의 다른 글
동적 SQL - EXEC(@SQL) 대 EXEC SP_EXECUTSQL(@SQL) (0) | 2023.05.26 |
---|---|
Mongoose 문서를 일반 객체로 변환하려면 어떻게 해야 합니까? (0) | 2023.05.26 |
이전에 추가한 라이브러리 제거 또는 제거: cocoapods (0) | 2023.05.26 |
SQL Server 쿼리의 최대 크기?IN절?더 나은 접근법이 있습니까? (0) | 2023.05.26 |
Eclipse 프로젝트에서 모든 Java 파일을 한 번에 포맷하는 방법은 무엇입니까? (0) | 2023.05.26 |