我刚刚删除了错误的分支,我需要用git branch -D branchName进行一些实验更改。
git branch -D branchName
如何恢复分支?
如果您知道分支的最后一个SHA1,您可以尝试一下
git branch branchName <SHA1>
你可以使用git reflog找到SHA1,在解决方案-缺陷链接-中描述。
git reflog
你可以使用git reflog来找到分支最后一次提交的SHA1。从这一点开始,您可以使用
git branch branchName <sha1>
编辑:正如@seagullJS所说,branch -D命令告诉你sha1,所以如果你还没有关闭终端,它变得非常容易。例如,它删除并立即恢复名为master2的分支:
branch -D
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
首先:备份您的整个目录,包括.git目录。
第二:你可以使用git fsck --lost-found来获取丢失提交的ID。
git fsck --lost-found
第三:在丢失的提交上重新设置或合并。
第四:在git中使用-D或——force之前一定要三思:)
你也可以阅读这个很好的讨论如何从这类错误中恢复。
编辑:顺便说一下,不要运行git gc(或允许它自己运行——即不要运行git fetch或类似的东西),否则你可能会永远失去你的提交。
git gc
git fetch
如果你还没有推送删除,你可以简单地做:
$ git checkout deletedBranchName
如果你刚刚删除了分支,你会在终端中看到如下内容:
Deleted branch branch_name(was e562d13)
其中e562d13是一个唯一的ID(也就是“SHA”或“散列”),使用这个可以恢复已删除的分支。
要恢复分支,使用:
git checkout -b <branch_name> <sha>
例如:
git checkout -b branch_name e562d13
谢谢,这很有效。
git分支new_branch_name sha1 Git checkout new_branch_name
git分支new_branch_name sha1
sha1
Git checkout new_branch_name
//可以看到我的旧的检入文件在我的旧分支
遵循以下步骤:
1:输入:
git reflog show
这将显示所有的提交历史,你需要选择你想要返回的最后一次提交的sha-1
2:用你选择的sha - 1 ID创建一个分支名称,例如:8c87714
git branch your-branch-name 8c87714
这招对我很管用:
git fsck --full --no-reflogs --unreachable --lost-found git show d6e883ff45be514397dcb641c5a914f40b938c86 git branch helpme 15e521b0f716269718bb4e4edc81442a6c11c139
如果你通过Source Tree删除了一个分支,你可以通过View -> Show Command History很容易地找到被删除分支的SHA1。
Source Tree
View -> Show Command History
它应该有下面的格式:
Deleting branch ... ... Deleted branch %NAME% (was %SHA1%) ...
然后按照原来的答案。
如果你使用Jetbrains IDE(Goland, phpstorm等)的GUI删除了一个分支
去
git windows(left-down corner of IDE)→console tab→现在您可以看到IDE执行命令的日志,并从该日志中找到分支名称和SHA1
git windows(left-down corner of IDE)
console tab
哦,等待答案!我想你已经知道了!
如果不是!这就是答案。
use git reflog git checkout branch branch_name commitsha
为了进一步说明,在第二个命令中,branch_name是您想要给分支指定的名称。Commitsha是您要检查的sha号码。你可以从git reflog命令中获得。
再次快乐编码!
如果你正在使用IntelliJ IDEA,在Event Log中你会看到类似这样的东西:
Event Log
并且可以简单地恢复你的分支。