为什么当我重新建立我的特征分支以开发结果时,头会脱落?

时间:2019-11-26 14:40:21

标签: git version-control rebase

我位于从候选人/2.11.00创建的功能分支上,并希望将其重新设置为新版本。

git rebase candidate/2.12.00
First, rewinding head to replay your work on top of it...
Upstream is not set.
could not detach HEAD

2 个答案:

答案 0 :(得分:1)

Rebase的工作方式是 分离HEAD,然后执行一系列git cherry-pick命令或等效于 copy 的一些提交,然后移动旧的分支名称- HEAD开头附加到的副本-最后复制的提交。

如果必须在完全成功之前停止变基,则您将处于此HEAD分离模式。无论需要进行多少手动工作,您都应该完成变基,或者完全撤消它(例如,git rebase --abort)。这样就可以解决问题,其中 right 由您命令的内容定义(完成或停止尝试)。

这就是您提出的问题的答案。也许您应该问的问题是,为什么您的重新定位无法开始:

First, rewinding head to replay your work on top of it...
Upstream is not set.
could not detach HEAD

“未设置上游”消息是奇怪的。当前的Git中没有出现此确切的字符串,并且没有理由命令git rebase candidate/2.12.00首先要查找当前分支的上游。

git checkout --detach(或内部等效项)失败时,发生“无法分离HEAD”错误。当您的Git存储库内部存在基本权限问题时,或者当计算机的文件系统进入冻结/只读模式时(例如,在某些磁盘驱动器发生故障后Linux会执行此操作),或者如果您的配置错误,该操作将失败Windows Antivirus系统阻止您执行任何工作。

答案 1 :(得分:0)

原来的问题出在检出后挂钩中,该挂钩应在每次检出后进行git pull。并且当上游未设置时退出代码1。这终止了git rebase。一旦我将退出代码更改为0,变基就可以正常工作了。