【问题标题】:How to do dir specific merges in a git repo如何在 git repo 中进行特定于目录的合并
【发布时间】:2018-01-11 18:25:31
【问题描述】:

我有两个分支 rel/1.0 和 rel/2.0,目录结构为 src,两个分支中都有测试用例。 QA 开发人员应该只接触两个分支中 testcases 目录下的文件。现在我只想将测试用例目录从 rel/1.0 合并到 rel/2.0 并排除 src 目录下的所有更改(合并期间),核心开发人员稍后将合并这些更改。

如何做到这一点?

当我在合并期间对 src 下的所有文件进行重置和恢复时,它不允许开发人员稍后将 src 更改从 1.0 合并到 2.0,因为它说的是“一切都是最新的”。我相信 git 合并历史记录被标记为所有文件的合并。

【问题讨论】:

  • 不寻找樱桃选择选项/答案,因为分支的变化非常大
  • 您必须合并更改,而不将其记录为合并提交。如果你最终得到一个合并提交,你以后在合并其他更改时会遇到问题。
  • 不记录如何合并?

标签: git merge git-merge


【解决方案1】:

你想在这里使用subtree合并

https://git-scm.com/book/en/v1/Git-Tools-Subtree-Merging

这是将测试目录从rel/1.0合并到rel/2.0

 git checkout rel/2.0
 git merge --no-ff -s recursive -X subtree=test rel/1.0 (resolve conflicts if any)
 git push origin rel/2.0 

【讨论】:

  • 不幸的是,它对我不起作用,我可以看到整个 rel/1.0 更改,包括合并工作区中的 src 目录更改。我在 linux 主机上使用 git ver 2.10.x
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-20
  • 2010-11-15
  • 2017-06-03
  • 2013-01-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多