git merge --no-commit with edits

时间:2014-07-15 16:46:11

标签: git

如果我使用

git merge --no-commit <other-branch>

然后进行更改,例如从合并中删除文件,这仍然是真正的合并吗?

我希望分支相关(合并),但我不想要新分支中的所有更改。

作为一个更具体的例子,other-branch是旧版本的发布分支。目前的分支是当前产品的开发分支。我们对应该移动到开发分支的发布分支进行了一些更改。

我们过去曾使用樱桃选择,但我觉得让git了解两个分支之间的关系可能会有优势。

编辑后的合并是否仍然合并?

2 个答案:

答案 0 :(得分:2)

是的,它仍然是合并。无论您运行git merge <other-branch>还是git merge --no-commit <other-branch>,结果都是合并提交,它有两个父项。 --no-commit选项只会停止,并允许您在提交合并之前调查合并进展顺利。

答案 1 :(得分:2)

  

--no-commit选项只是停止,您可以在提交合并之前调查合并是否顺利。

现在已在Git 2.22(2019年第二季度)中进行了记录

请参见commit 1ede45eElijah Newren (newren)(2019年2月21日)。
(由Junio C Hamano -- gitster --commit 082c15a中合并,2019年3月7日)

  

merge-options.txt--no-commit选项的正确措辞

     

以前的措词暗示--no-commit将始终使合并操作“暂停”,并允许用户进行进一步的更改和/或为合并提交提供特殊的提交消息。

     

快进合并不是这种情况,因为没有合并提交   去创造。

     

没有合并提交,就没有地方“停止合并并允许用户调整更改”;这样做将需要某种形式的完整基础。

     

由于用户可能不知道其分支机构是否分支,因此请修改措辞以正确处理快进案例,并建议使用--no-ff--no-commit,如果这样做是为了确保合并会在完成之前停止。

The documentation更清晰:

  

使用--no-commit执行合并,并在创建合并提交之前停止,使用户有机会在提交之前检查并进一步调整合并结果。

     

请注意,快进更新不会创建合并提交,因此无法通过--no-commit停止这些合并。
  因此,如果要确保合并命令不会更改或更新分支,请将--no-ff--no-commit一起使用。