1

如果我的 git 存储库处于“分离头”状态,当我执行“git pull”时,它仍然可以远程拉入新的提交。

在我执行“git pull”之后,我看到了新的提交。

我的问题是“如果我的存储库处于分离头”状态,并且我已经做了一些本地提交(没有推送)然后我做了“git pull”,我看到了新的提交,但是我的本地提交已经消失了。

这是为什么?以及在哪里/如何查看我的本地提交?

谢谢你。

4

2 回答 2

0

你不应该分头行动!
当您意识到自己处于超然状态(并且希望进行更改)时,您需要:

git checkout -b someBranch

鉴于您已经进行了更改并提交了它们,一旦丢失它们,您将需要执行以下操作:

git branch someBranch HEAD@{1}

您可以查看以获取更多信息。

于 2012-11-01T07:23:47.710 回答
0

通常,HEAD指针是指向实际引用(通常是分支)的符号引用。你可以对此做出承诺。当您处于分离的 HEAD 状态时,HEAD指针直接指向提交而不是实际引用。此时提交将保存数据,但会使其无法访问。如果您切换到实际的分支,则没有直接的方法可以切换回您所做的新提交。

解决方案是从您使用的地方剪下一个分支git branch foo。现在,如果您切换分支,您仍然可以切换回foo包含新提交的新创建的分支。

于 2012-11-01T07:28:04.053 回答