[英]Git undo local branch delete
我剛剛刪除了錯誤的分支,並使用git branch -D branchName
了一些我需要的實驗性更改。
如何恢復分支?
您可以使用git reflog查找分支最后一次提交的 SHA1。 從那時起,您可以使用重新創建分支
git branch branchName <sha1>
編輯:正如@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>
您可以使用git reflog
找到 SHA1,在解決方案 --defect link-- 中進行了描述。
如果您還沒有推送刪除,您可以簡單地執行以下操作:
$ git checkout deletedBranchName
如果您剛剛刪除了分支,您將在終端中看到如下內容:
Deleted branch branch_name(was e562d13)
- 其中 e562d13 是一個唯一 ID(又名“SHA”或“hash”),這樣您就可以恢復已刪除的分支。
要恢復分支,請使用:
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 分支 new_branch_name
sha1
git checkout new_branch_name
//可以在我的舊分支中看到我的舊簽入文件
這對我有用:
git fsck --full --no-reflogs --unreachable --lost-found
git show d6e883ff45be514397dcb641c5a914f40b938c86
git branch helpme 15e521b0f716269718bb4e4edc81442a6c11c139
如果您通過Source Tree
刪除了一個分支,您可以通過轉到View -> Show Command History
輕松找到已刪除分支的 SHA1。
它應該具有下一個格式:
Deleting branch ...
...
Deleted branch %NAME% (was %SHA1%)
...
然后只需按照原始答案即可。
git branch branchName <sha1>
如果您使用 Jetbrains IDE(Goland、phpstorm 等)的 GUI 刪除了一個分支
去
git windows(left-down corner of IDE)
-> console tab
->現在您可以看到IDE執行的命令的日志並從該日志中找到分支名稱和SHA1
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.