目前不在任何分行+;git提交+;不在任何分支机构时结账。我的零钱丢了吗?

目前不在任何分行+;git提交+;不在任何分支机构时结账。我的零钱丢了吗?,git,commit,Git,Commit,提交更改时,我当前不在任何分支上。 我真的没有注意到这条消息,于是去了另一家分店 如何检索我的更改? 我无法合并或签出,因为没有可以合并的分支。您的提交没有消失,您可以通过让git向您显示隐藏的提交,并将它们放回临时分支来恢复 有关说明,请参阅。您永远不会“不在任何分支上”。您可能在名为master的分支上,但提交时您在分支上。因此,提交在某个地方 使用git log查看历史记录。您可以使用git reset返回时间(包括可选地将更改保留在工作目录中)。您可以使用git reflog获取在“无分

提交更改时,我当前不在任何分支上。 我真的没有注意到这条消息,于是去了另一家分店

如何检索我的更改?
我无法合并或签出,因为没有可以合并的分支。

您的提交没有消失,您可以通过让git向您显示隐藏的提交,并将它们放回临时分支来恢复

有关说明,请参阅。

您永远不会“不在任何分支上”。您可能在名为
master
的分支上,但提交时您在分支上。因此,提交在某个地方


使用
git log
查看历史记录。您可以使用
git reset
返回时间(包括可选地将更改保留在工作目录中)。

您可以使用
git reflog
获取在“无分支”(分离的头)中执行的提交的提交散列,并将其合并到您当前所在的分支中(可能是主分支)

类似于
git merge HEAD@{1}

您还可以
git rebase-i
并从reflog中“选择”所需的提交。

使用“git reflog”,它显示git命令历史记录结果的提交哈希。
然后,您可以“git co hash”,找到正确的后,为它设置/创建分支。

提交一些工作后,我也处于类似的状态:

Lilith:经理KelSolaar$git状态

目前不在任何分支上。 我发布了一个git日志来查看我的上一个提交哈希:

Lilith:经理KelSolaar$git日志

提交49984303037E970D637161C3154B7FD7D6AE3A4 作者:Kelsolar 日期:星期三10月5日22:41:31 2011+0100

Introduce new "QObject" components category and rename existing ones to "Def
然后我查看了我的主分支:

Lilith:经理KelSolaar$git结帐主管

以前的头位置是4998430。。。引入新的“QObject”组件,将现有组件分类并重命名为“Default”和“QWidget”

切换到“主”分支

最后,我使用提交散列进行了合并:

Lilith:经理KelSolaar$git合并49984303037e970d637161

更新141bc69..4998430

快进

src/manager/component.py | 2+-


git checkout-
会将您切换回上一个分支:

Thu Feb 21 12:50 AM /src/test ((08f84f4...)) $ git checkout master

Warning: you are leaving 1 commit behind, not connected to
any of your branches:

  08f84f4 Fix everything

Switched to branch 'master'

Thu Feb 21 12:50 AM /src/test (master) $ git checkout -

HEAD is now at 08f84f4... Fix everything

Thu Feb 21 12:50 AM /src/test ((08f84f4...)) $

您在提交时是否仍有控制台输出?它是否包含提交的SHA1?如果是这样,您就有了提交对象,这就是您所需要的全部。。。不知道你永远不可能在分支中…@Ignacio不在分支中最常见的情况是当你签出一个提交时,它不是一个分支的尖端branch@Ignacio:而且它非常有用!您可以在历史记录中的提交之间跳转,而无需移动任何分支提示—特别有用,例如,在尝试为
git-bisect
找到一个好的提交时。“detached HEAD”是该状态的名称,因为HEAD直接指向commit,而不是通过特定的ref间接指向commit。这是错误的-您不能在分支上。这种状态称为“分离头”,因为
HEAD
指向特定提交的哈希,而不是分支名称。您使用分离头进行的任何提交都不会推进分支提示,但在一段时间内仍然可以通过reflog访问。不正确。现在“$git status”给了我“#当前不在任何分支上。”(而不是通常的“#on branch master”),然后是“#要提交的更改:”等等。在本例中,这比这更容易,因为reflog将具有提交描述。我认为这是最好的答案。同样值得一提的是,您可以使用
git branch
检查您当前的分支。这用最简单的解决方案回答了这个问题<代码>git签出-(只是再次突出显示)