如果要结帐一个分支:
去结帐 760ac7e
从例如b9ac70b,如何回到最后一个已知的头b9ac70b,而不知道它的SHA1?
如果要结帐一个分支:
去结帐 760ac7e
从例如b9ac70b,如何回到最后一个已知的头b9ac70b,而不知道它的SHA1?
当前回答
使用git reflog查找以前检出的提交的哈希值。
一个快捷命令是git checkout -,它可以到达你最后签出的分支(虽然不确定分离HEAD和中间提交是否正确)
其他回答
我有这个边缘情况,在那里我检查了之前版本的代码,其中我的文件目录结构是不同的:
git checkout 1.87.1
warning: unable to unlink web/sites/default/default.settings.php: Permission denied
... other warnings ...
Note: checking out '1.87.1'.
You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by performing another checkout.
If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again.
Example:
git checkout -b <new-branch-name>
HEAD is now at 50a7153d7... Merge branch 'hotfix/1.87.1'
在这种情况下,您可能需要使用——force(当您知道回到原始分支并放弃更改是安全的事情时)。
Git checkout master不工作:
$ git checkout master
error: The following untracked working tree files would be overwritten by checkout:
web/sites/default/default.settings.php
... other files ...
Git checkout master——force(或Git checkout master -f)工作正常:
git checkout master -f
Previous HEAD position was 50a7153d7... Merge branch 'hotfix/1.87.1'
Switched to branch 'master'
Your branch is up-to-date with 'origin/master'.
如果你记得之前签出了哪个分支(例如master),你可以简单地
git checkout master
来摆脱分离的HEAD状态。
一般来说:git checkout <branchname>将使您摆脱该操作。
如果您不记得最后一个分支名称,请尝试
git checkout -
这也试图检出您最后检出的分支。
因为GitHub不再使用master作为新存储库的默认分支。 Git结帐系统对我不起作用。
奏效的方法是: Git checkout main
您可能已经在分离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 reflog查找以前检出的提交的哈希值。
一个快捷命令是git checkout -,它可以到达你最后签出的分支(虽然不确定分离HEAD和中间提交是否正确)