为什么最近,git rebase -i squash 导致头部分离
Why recently, git rebase -i squash results in detached head
为什么最近 git rebase -i with squashes 导致头部分离?它曾经用交互式 rebase 的结果更新我当前的分支。我如何获得交互式变基以停止分离 HEAD?
我一直使用 git rebase -i 在从远程存储库拉取之前压缩我的提交,以简化处理来自 git 拉取的任何合并冲突。我不必解决我可能多次提交的冲突,而只需解决一次提交。
我使用的示例命令
# git rebase -i <tip of public branch> <my latest commit>
git rebase -i 380647533da 82f5ee67bed
在 vim 中编辑变基交互后:
pick 3ec7c211c49 version1
s 82f5ee67bed some significant refactoring
编辑并保存提交后的输出:
[detached HEAD ea50304796c] version1
Date: Thu Jun 6 17:04:36 2019 -0400
14 files changed, 213 insertions(+), 52 deletions(-)
create mode 100644 some file
create mode 100644 some file
create mode 100644 some file
Successfully rebased and updated detached HEAD.
这不同于类似的 post
git rebase -i develop HEAD leads to Detached Head
因为提问者想知道如何解决该 ONE 实例的问题。答案是git checkout -b branchName
。在这个问题中,我想知道为什么它最近开始发生在我身上,以及如何为所有 FUTURE 实例解决它。
这与类似的post git rebase -i with squash cannot detach HEAD不同,因为那里的错误信息是could not detach HEAD
syntax guide for git rebase
显示:
<em>git rebase</em> [-i | --interactive] [<options>] [--exec ] [--onto <newbase>]
[<upstream> [<branch>]]
<em>git rebase</em> [-i | --interactive] [<options>] [--exec <cmd>] [--onto <newbase>]
--root [<branch>]
<em>git rebase</em> --continue | --skip | --abort | --quit | --edit-todo | --show-current-patch
所以你的命令:
git rebase -i 380647533da 82f5ee67bed
提供 380647533da
作为 <upstream>
和 82f5ee67bed
作为 <branch>
。
描述部分的第一段说:
If <branch> is specified, git rebase will perform an automatic git checkout <branch>
before doing anything else. Otherwise it remains on the current branch.
因此,您的 git rebase
相当于:
git checkout 82f5ee67bed
git rebase 380647533da
第一个命令导致分离的 HEAD。当 rebase 完成时,分离的 HEAD 保持原样。
我在做:
git rebase -i 380647533da 82f5ee67bed
当我应该做我经常做的事情时:
git rebase -i 380647533da
为什么最近 git rebase -i with squashes 导致头部分离?它曾经用交互式 rebase 的结果更新我当前的分支。我如何获得交互式变基以停止分离 HEAD?
我一直使用 git rebase -i 在从远程存储库拉取之前压缩我的提交,以简化处理来自 git 拉取的任何合并冲突。我不必解决我可能多次提交的冲突,而只需解决一次提交。
我使用的示例命令
# git rebase -i <tip of public branch> <my latest commit>
git rebase -i 380647533da 82f5ee67bed
在 vim 中编辑变基交互后:
pick 3ec7c211c49 version1
s 82f5ee67bed some significant refactoring
编辑并保存提交后的输出:
[detached HEAD ea50304796c] version1
Date: Thu Jun 6 17:04:36 2019 -0400
14 files changed, 213 insertions(+), 52 deletions(-)
create mode 100644 some file
create mode 100644 some file
create mode 100644 some file
Successfully rebased and updated detached HEAD.
这不同于类似的 post
git rebase -i develop HEAD leads to Detached Head
因为提问者想知道如何解决该 ONE 实例的问题。答案是git checkout -b branchName
。在这个问题中,我想知道为什么它最近开始发生在我身上,以及如何为所有 FUTURE 实例解决它。
这与类似的post git rebase -i with squash cannot detach HEAD不同,因为那里的错误信息是could not detach HEAD
syntax guide for git rebase
显示:
<em>git rebase</em> [-i | --interactive] [<options>] [--exec ] [--onto <newbase>] [<upstream> [<branch>]] <em>git rebase</em> [-i | --interactive] [<options>] [--exec <cmd>] [--onto <newbase>] --root [<branch>] <em>git rebase</em> --continue | --skip | --abort | --quit | --edit-todo | --show-current-patch
所以你的命令:
git rebase -i 380647533da 82f5ee67bed
提供 380647533da
作为 <upstream>
和 82f5ee67bed
作为 <branch>
。
描述部分的第一段说:
If <branch> is specified, git rebase will perform an automatic
git checkout <branch>
before doing anything else. Otherwise it remains on the current branch.
因此,您的 git rebase
相当于:
git checkout 82f5ee67bed
git rebase 380647533da
第一个命令导致分离的 HEAD。当 rebase 完成时,分离的 HEAD 保持原样。
我在做:
git rebase -i 380647533da 82f5ee67bed
当我应该做我经常做的事情时:
git rebase -i 380647533da