【问题标题】:git: can I accept both changes in a merge conflict without editing files?git:我可以在不编辑文件的情况下接受合并冲突中的两个更改吗?
【发布时间】:2016-11-18 09:04:32
【问题描述】:

我通常在 Rails 语言环境文件中存在合并冲突,例如:

<<<<<<< HEAD
  label_company_offices: "Branches"
=======
  field_amounts_withheld: "Withheld amount"
>>>>>>> master

这里我必须编辑每个语言环境文件,我可以避免这种情况吗?

有什么方法可以告诉 git“解决冲突,接受两个更改”?

【问题讨论】:

  • 有,有点。这称为联合合并。不要这样做!或者(仅限专家):不要这样做。详情请见stackoverflow.com/q/38502458/1256452
  • 感谢链接,我搜索但无法找到它:( 如果 git 不支持,我不喜欢每次都检查合并是否正确的想法这个,我认为sed 的脚本可以完成这项工作

标签: ruby-on-rails git


【解决方案1】:

这对我有用:

ruby -pi -e "gsub(/^[=<>*]{7}.*\n/,'')" config/locales/*.yml

用于 bash 别名:

alias automerge="ruby -pi -e \"gsub(/^[=<>*]{7}.*\\n/,'')\""

【讨论】:

    【解决方案2】:

    您应该在重新暂存它们(“git add”)并完成合并提交之前手动解决所有合并冲突。

    “接受两者”的唯一方法是重新暂存(标记为已解决)冲突文件而不解决它们( >>> 和 糟糕的做法,即使您稍后提交以解决问题。合并提交的重点是在提交中查看合并的分辨率。

    有一些方法可以避免产生冲突 - 使用合并策略。例如,您可以将策略参数传递给“git merge”命令,以便始终使用“我们的”策略在冲突中进行更改。查看“git merge”帮助页面以了解不同的策略,也许其中一种会适用于您的情况。

    【讨论】:

    • 我想要的是自动删除 git 标记,这样我就可以执行git add 并接受这两项更改
    猜你喜欢
    • 1970-01-01
    • 2014-10-21
    • 1970-01-01
    • 2019-03-14
    • 2019-07-25
    • 2010-12-09
    • 1970-01-01
    • 2013-11-01
    • 1970-01-01
    相关资源
    最近更新 更多