提交后出现"Not currently on any branch"的提示

5
我将早期提交检出:
git checkout 12345

然后回到最后一次提交:

git checkout 56789

然后继续提交,结果出现以下提示:

当前未在任何分支上。

也许我应该执行以下命令:

git checkout master

在第一次检出之后,而不是指向一个提交 ID。
还有,有什么办法可以将我的最新提交合并到主分支(它比主分支落后几个提交)?
谢谢。
2个回答

10
当你执行git checkout 12345时,你将处于无分支状态。不要这样做。这是为了提交检查而不是用来工作的。
如果你在主分支上,并且想要重置主分支到所需的提交版本,请使用git reset 12345(或提供--hard)。如果想要创建一个新分支,请使用git checkout -b <name> <sha1>在该点创建分支并开始工作。
同样地,当你回来时,就像你提到的那样,你应该执行git checkout master
现在,既然你已经提交了56789以上的内容,请记下此提交的版本信息,然后切换回主分支,并执行:
git reset <commit_over_56789>

4

如果我理解正确,你的主分支落后于你最近的提交(56789),你想将其指向那个提交。

如果是这种情况,可以执行以下操作:

git branch -f master 56789

这将重置主分支以指向该提交。之后运行git checkout master,然后你就可以开始了。


假定当前工作副本干净,您也可以简单地运行 git checkout master && git rebase 56789 这条命令。 - Romain
太好了。非常感谢,Mat和Romain! - Albus Dumbledore
非常感谢,这对我很有帮助。我个人认为这个答案比其他的更有用。 - Andrei LED

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接