如果要结帐一个分支:

去结帐 760ac7e

从例如b9ac70b,如何回到最后一个已知的头b9ac70b,而不知道它的SHA1?


当前回答

以防有人有和我一样的边缘情况:我有一个叫test的分支,并试图创建一个叫test/my-experimental-feature的分支。这让git感到困惑,因为它认为我引用的是一个已经存在的分支。我把它改成了测试——我的实验——特性,它工作得很好。

其他回答

因为GitHub不再使用master作为新存储库的默认分支。 Git结帐系统对我不起作用。

奏效的方法是: Git checkout main

使用git reflog查找以前检出的提交的哈希值。

一个快捷命令是git checkout -,它可以到达你最后签出的分支(虽然不确定分离HEAD和中间提交是否正确)

如果你记得之前签出了哪个分支(例如master),你可以简单地

git checkout master

来摆脱分离的HEAD状态。

一般来说:git checkout <branchname>将使您摆脱该操作。

如果您不记得最后一个分支名称,请尝试

git checkout -

这也试图检出您最后检出的分支。

您可能已经在分离HEAD状态下进行了一些新的提交。我相信如果你按照其他答案的建议去做:

git checkout master
# or
git checkout -

然后你可能会失去你的提交!! 相反,你可能想这样做:

# you are currently in detached HEAD state
git checkout -b commits-from-detached-head

然后将commit -from-detached-head合并到任何你想要的分支中,这样你就不会丢失提交。

一般情况下:git checkout <branch*> (git checkout master是一个特例)。

(使用git checkout <commit_hash>)