以'Detach Head'状态更新git存储库

时间:2012-11-01 07:15:09

标签: git

如果我的git存储库处于'Detach Head'状态,当我执行'git pull'时,它仍然可以 远程提取新提交。

我在'git pull'之后看到了新的提交。

我的问题是'如果我的存储库处于Detach head'状态,我做了一些本地提交(没有推送)然后我做'git pull',我看到新的提交,但我的本地提交已经不见了

为什么?以及我如何/如何看到我的本地提交?

谢谢。

2 个答案:

答案 0 :(得分:0)

你不应该对一个独立的头部做出承诺! 当你意识到你处于一个独立的头上时(你希望做出改变),你需要:

git checkout -b someBranch

鉴于你已经做出改变并提交了它们,一旦你丢失了它们,你将需要做类似的事情:

git branch someBranch HEAD@{1}

您可以查看this了解详情。

答案 1 :(得分:0)

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

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