从Git分支中合并除一个更改以外的所有更改,最简单的方法是什么?

9

我想从分支中精选所有提交记录,但不包括其中的一个,而且希望能在一条命令中完成...

• 我们发布了一个版本并创建了一个分支

• 发布会将所有pom文件的版本号都改为一个数字,并在主分支上改为另一个数字

• 我在分支中提交了一些其他更改,并希望将这些更改复制回主分支

• 我将分支合并到主分支中,这带来了代码更改,但也带来了版本号更改,在每个pom文件中都产生了冲突

有没有简单的方法可以将所有pom文件回滚到合并前的内容,然后将其提交为合并的结果呢?


如果您的情况是想合并,但要在合并中省略任何发生冲突的文件,请参阅 Can I merge only non-conflicting changes in Git? - Graham Lea
有一个更好的解决方案。使用我的合并驱动程序,您就不必做任何事情 :-) 看看我的答案:https://dev59.com/Cmct5IYBdhLWcg3wSrp3#26866992 - Sven Oppermann
1个回答

14

以下是我的建议。首先,执行常规合并操作,但不要提交它:

git checkout master
git merge --no-commit <branch>

然后,恢复所有的pom文件:

for file in $(find . -name 'pom.xml'); do git checkout HEAD "$file"; done

那么你应该能够提交最终结果:

git commit

运行得非常好。谢谢!日志图比挑选更好看。仍有一堆未跟踪的.orig和.BACKUP文件,但摆脱它们是另一回事。 - Graham Lea

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接