【问题标题】:git merge into master only overwrite changed filesgit merge into master 只覆盖更改的文件
【发布时间】:2013-05-14 08:06:34
【问题描述】:

是否可以将分支edits 合并到分支master 与以下场景:

对edits 进行了许多更改,并添加了新文件。

还对master 进行了许多更改,并添加了新文件。

我想覆盖master 中的所有重复文件并使用edits 中的文件,这样当我完成后,master 将包含来自edits 的所有更改,来自edits 的所有新文件以及来自master 的所有新文件。如果两者都包含新文件,它将使用edits 的新文件。如果有合并,我想用来自edits 的文件替换整个文件。

我找到了这个答案:https://stackoverflow.com/a/1295232/1166285 并尝试了评论的建议,但这产生了我必须解决的冲突。

这可能吗?

【问题讨论】:

    标签: git merge


    【解决方案1】:

    在master 分支上,将edits 分支与theirs 合并策略合并:

    git checkout master
    git merge -Xtheirs edits
    

    如果发生冲突,这将首选theirs 分支。从master 中没有冲突的更改将被保留。

    【讨论】:

    • 谢谢,如果有一些冲突,这会完全替换文件吗?
    • 如果单个文件包含两个分支的更改,不冲突的将进入合并文件。
    • 以Automatic merge failed; fix conflicts and then commit the results结尾
    • 这太令人惊讶了!主分支是干净的,还是有未提交的更改? (请咨询git status。)什么样的变化导致了冲突? (检查git diff --diff-filter=U)
    • git status 只有未跟踪的文件(两者都有),而另一个命令什么也没显示
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-06-16
    • 1970-01-01
    • 1970-01-01
    • 2013-05-04
    • 1970-01-01
    • 2020-07-27
    • 2012-03-15
    相关资源
    最近更新 更多