【问题标题】:take everything from a branch regardless of conflicts and other changes无论冲突和其他更改如何,都从分支中获取所有内容
【发布时间】:2014-12-31 17:16:05
【问题描述】:

我正在进行 GIT 合并,但在我要合并到的分支上发生了冲突和合并。

考虑 带有上周代码的分支 A 使用今天的代码分支 B

我想将分支 B 合并到分支 A。如果有冲突,我想从 branchB 中获取。如果有任何文件更改(自动合并),我想忽略它们并再次从 branchB 获取

有没有一种方法可以让我通过文件可以强制所有在分支A 上更改的文件都具有分支B 上的文件内容?

Git 通过提交而不是文件合并,所以我不确定这是否可能。否则,我将进行比较,并且必须比较和替换每个文件。 (有>1000个eekk!)

谢谢

编辑 感谢@AndrewC 的评论。我想和我们的相反。来自文档

ours - 这解决了任意数量的正面,但合并的结果 始终是当前的分支头。它旨在用于取代 支线的老发展史。

我将在 branchA 上并希望在 branchB 中合并并保留所有 branchB 文件。我认为使用我们的合并策略将保留所有 branchA 文件

【问题讨论】:

  • 查看 git merge 的手册页并查看 strategy=ours
  • 谢谢@AndrewC 我会用我的评论更新问题
  • 你确实想要我们的策略。我们的策略不会解决冲突,它会全面考虑我们的一方并忽略他们所做的任何更改(是否有冲突的更改)。
  • 在这种情况下,您想要相反的策略,那就是“他们的”策略。

标签: git merge


【解决方案1】:

如果分支 A 的文件在您上次克隆/提取/拉取之间没有更改,除非它们已更改,否则合并不会发生冲突,所以您确定要用分支 B 的文件覆盖吗?

如果您确实想覆盖,当您执行合并并为冲突执行 git status 时,您想要分支 B 中的所有内容,对吗?为什么不写一点 bash 来检查分支 B 的 git status 中的所有内容?

基本上从 git status 中读取所有文件路径并执行:

git checkout <branch_b_name> /path/to/file

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-18
    • 2019-05-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多