【问题标题】:What's the easiest way to merge all but one change from a branch in Git?在 Git 中合并除一个分支之外的所有更改的最简单方法是什么?
【发布时间】:2012-10-21 15:19:09
【问题描述】:

这有点像我想从分支中挑选除一个之外的所有提交,但我想在一个命令中做到这一点......

• 我们删减了一个发布,它创建了一个分支

• 该版本将我们所有 pom 中的版本号、分支上的版本号更改为一个数字,而 master 上的版本号更改为不同的数字

• 我已对分支提交了许多其他更改,并希望将这些更改复制回 master

• 我已将分支合并回 master,这带来了代码更改以及版本号更改,从而在每个 pom 中产生冲突

我有什么简单的方法可以将所有 pom 文件恢复为合并前的内容,然后作为合并的结果提交?

【问题讨论】:

标签: git merge branch pom.xml cherry-pick


【解决方案1】:

我建议这样做。首先,进行常规合并,但不要提交:

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 文件,但摆脱它们是另一回事。
猜你喜欢
  • 1970-01-01
  • 2012-04-02
  • 2010-12-21
  • 2012-08-16
  • 2011-05-14
  • 2010-12-20
  • 2012-03-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多