我最初创建了一个分支,但不小心使用git branch -M 命令将其与另一个分支合并了。
有没有办法恢复被覆盖的分支(哈希值)?
Reflog 没有显示任何以前的提交哈希值,并且我无法在任何地方找到原始分支的提交哈希值。
我最初创建了一个分支,但不小心使用git branch -M 命令将其与另一个分支合并了。
有没有办法恢复被覆盖的分支(哈希值)?
Reflog 没有显示任何以前的提交哈希值,并且我无法在任何地方找到原始分支的提交哈希值。
我做了一个测试。
$ git branch
* master
$ git reflog master
63fa031 master@{0}: clone: from git://192.168.70.128/
$ git branch -M master nice
$ git branch
* nice
$ git reflog master
fatal: ambiguous argument 'master': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'
$ git reflog nice
63fa031 nice@{0}: Branch: renamed refs/heads/master to refs/heads/nice
63fa031 nice@{1}: clone: from git://192.168.70.128/
git reflog <newbranch>
可以显示重命名历史记录。git reflog
中提到,因为它记录了分支检出。如果该提交未在reflog中提到(或者您不确定是否提到),请尝试git fsck --no-reflogs
,它将列出(除其他外)所有悬空提交之一应该是您被覆盖分支的头部。
nice@{0}
,当它的名称被更改时。git log 63fa031
可以显示它的提交历史记录。git checkout -b master 63fa031
可以恢复它。 - ElpieKay