Git:合并期间的其他更改而没有冲突

Posted

技术标签:

【中文标题】Git:合并期间的其他更改而没有冲突【英文标题】:Git: Additional changes during merge without conflicts 【发布时间】:2013-10-22 23:50:48 【问题描述】:

假设您将 Git 中的一个分支合并到另一个分支(当然不能快进)。而且你没有冲突,所以合并应该是成功的,没有中断。但是由于某些原因,您希望直接对此合并文件树进行一些手动更改,以成为此合并提交的一部分。该怎么做?

为什么我需要这么奇怪的东西?这是由于我的工作流程(实际上这可能也是一个需要改进的主题 - 所以这里的建议非常受欢迎):我有一个“主”分支,当我想实现一个新功能时,我派生了一个新分支从 master 并使用它直到功能完成。然后我将这个分支合并到 master 后面(使用 no-ff 模式)。但是这里的问题是我的版本策略(具体的语义版本)需要在完成新功能的同时增加版本号。因此,此时我必须直接向 master 提交另一次提交,对配置文件进行非代码更改,表明这是一个新版本。结果,我必须在 master 中提交两个提交,指的是一个新版本:合并提交,在新版本的配置中没有指示,然后提交有这样的指示,但在代码库中没有任何必要的更改。因此,乍一看,合并此类提交会很好。但我不知道怎么做。

【问题讨论】:

【参考方案1】:

您可以将其与参数 --no-commit 合并

git merge --no-ff --no-commit mybranch

因此,之后您从分支“mybranch”所做的更改将转移到您的主服务器,但无需提交。因此,您可以添加对版本策略的更改,然后才进行一次提交

【讨论】:

执行此命令后,当前 repo 状态是否与要解决的冲突相同?所以要完成合并并返回正常状态,我必须“提交”当前树,对吧? 好的。我刚试过这个功能。这正是我想要的。非常感谢,伙计! :)

以上是关于Git:合并期间的其他更改而没有冲突的主要内容,如果未能解决你的问题,请参考以下文章

在 Git 中合并但覆盖更改

合并没有空格冲突

git,用工具合并,而不是用工具解析

如何找出导致冲突的 Git 提交?

git告诉我我合并冲突,但也告诉我没有文件需要合并

为啥 git rebase 的合并冲突通常比合并少?