如果我的 git 存储库处于“分离头”状态,当我执行“git pull”时,它仍然可以远程拉入新的提交。
在我执行“git pull”之后,我看到了新的提交。
我的问题是“如果我的存储库处于分离头”状态,并且我已经做了一些本地提交(没有推送)然后我做了“git pull”,我看到了新的提交,但是我的本地提交已经消失了。
这是为什么?以及在哪里/如何查看我的本地提交?
谢谢你。
如果我的 git 存储库处于“分离头”状态,当我执行“git pull”时,它仍然可以远程拉入新的提交。
在我执行“git pull”之后,我看到了新的提交。
我的问题是“如果我的存储库处于分离头”状态,并且我已经做了一些本地提交(没有推送)然后我做了“git pull”,我看到了新的提交,但是我的本地提交已经消失了。
这是为什么?以及在哪里/如何查看我的本地提交?
谢谢你。
你不应该分头行动!
当您意识到自己处于超然状态(并且希望进行更改)时,您需要:
git checkout -b someBranch
鉴于您已经进行了更改并提交了它们,一旦丢失它们,您将需要执行以下操作:
git branch someBranch HEAD@{1}
您可以查看此以获取更多信息。
通常,HEAD
指针是指向实际引用(通常是分支)的符号引用。你可以对此做出承诺。当您处于分离的 HEAD 状态时,HEAD
指针直接指向提交而不是实际引用。此时提交将保存数据,但会使其无法访问。如果您切换到实际的分支,则没有直接的方法可以切换回您所做的新提交。
解决方案是从您使用的地方剪下一个分支git branch foo
。现在,如果您切换分支,您仍然可以切换回foo
包含新提交的新创建的分支。