Git无合并提交合并分支遇提示:自动合并成功但未提交
问题解答
提示信息的含义
你看到的提示Automatic merge went well; stopped before committing as requested意思是:Git已经顺利完成了自动合并,把feature_b的commit#3的内容合并到了当前feature_a分支的工作区和暂存区,但因为你添加了--no-commit参数,所以Git按要求没有自动完成提交(包括快进合并的指针移动操作)。
为什么你的命令没达到预期
你想要的是快进合并——这种合并方式本来就不会生成合并提交,当两个分支源自同一父分支且没有冲突时,Git会直接把当前分支的指针移动到目标分支的最新提交,不会创建新的合并节点。但你额外加了--no-commit参数,导致Git跳过了指针移动的步骤,只是把内容合并到工作区,所以你看不到分支历史的变化。
正确的操作方式
直接完成快进合并
在feature_a分支下执行以下命令,就能得到你期望的分支结构:
git merge feature_b --ff
这个命令会直接将feature_a的HEAD指针快进到feature_b的最新提交commit#3,最终feature_a的提交历史就是develop -> commit#1 -> commit#2 -> commit#3,完全符合预期,且不会生成任何合并提交。
补救已执行的命令
如果你已经执行了之前的git merge feature_b --no-commit --ff,可以通过以下方式补救:
- 直接提交合并后的内容,复用feature_b的提交信息:
git commit -C feature_b - 或者放弃当前合并状态,重新执行正确的快进合并:
git merge --abort git merge feature_b --ff
内容的提问来源于stack exchange,提问作者Steve Murdock
相关产品推荐
相关产品推荐

