我的git头部有问题,我曾尝试过更正,但似乎使情况变得更糟。我自己在本地项目中工作,没有分支,但是似乎是由于测试早期版本(并尝试对其进行更正)时出现错误而引起的。“ git status”告诉我我的版本为23,我的HEAD与版本20分离,并且“主人”指向版本15。好像我陷入了这种情况,最初是这里描述的:Why did my Git repo enter a detached HEAD state?
我曾经尝试使用此处Fix a Git detached head?(“樱桃挑剔”)中提出的方法来校正头部脱离,但似乎在这里犯了一个错误。同样,第一个解决方案是修复先前的提交,而不是较早的8次提交。
我确实在这个阶段迷失了方向,我想知道如何重新将我的“ HEAD”和“ master”附加到当前版本23中。我想保留当前版本中的所有更改。
或者,我可以简单地删除整个git存储库,然后以当前版本作为第一次提交重新开始。有什么建议吗?
答案 0 :(得分:0)
处于“分离的HEAD”状态只是您检出了提交而不是检出了分支。
因此,要解决此问题,就像在一个分支上进行检出一样简单,例如:
git checkout master
这是一个好习惯,尤其是当您是git初学者时,在处于分离的HEAD状态(即签出提交)时不要提交。要提交时,请务必签出分支或创建新分支。
注意:但是在结帐master
之前,最好先stash
进行更改。
在测试早期版本(并尝试对其进行更正)时,“ git status”告诉我我的版本为23,我的HEAD与版本20分离,“ master”指向版本15。
有多种方法可以解决此问题,但是您没有提供足够的信息来解决您所期望的问题。进入master
分支后,它可以是pull
(如果进行了合并则合并提交)或reset --hard
(如果进行了合并则放弃提交)。>
PS:我认为您应该花一些时间进行git教程或与同事配对。
edit 1:如果您是在分离头中进行提交,请使用git checkout -b my-fix创建一个新分支,以保护新提交。这样一来,您就可以更轻松地解决问题。
edit2:如果您在git checkout方面遇到困难,请更新至git v2.23并使用2个新命令:https:///infoq.com/news/2019/08/git-2-23-switch-restore