如何在git中合并没有冲突的文件?

时间:2018-03-29 12:42:36

标签: git github git-merge git-pull git-diff

我们是两个人在Github的一个主分支回购工作。

而且,今天我修改了我提交的本地副本中的文件,然后我想合并我的朋友更改并推送到github,所以我做了:

git fetch
git diff --stat HEAD...HEAD@{upstream}

我可以看到

 src/components/views/invoicing/expenses/add.vue  | 106 ++++++--------
 src/components/views/invoicing/expenses/edit.vue | 173 ++++++++++++-----------
 src/components/views/org/Add.vue                 |   4 +-
 src/i18n/de.js                                   |  22 ++-
 src/i18n/en.js                                   |  26 ++--
 src/i18n/fr.js                                   |  11 +-
 src/resources/expensesList.js                    |   4 +-

现在,我可以合并所有文件,因为我没有修改它们,除了我修改和提交的src/resources/expensesList.js文件。

所以,git merge origin/master说:

  

CONFLICT(内容):合并src / resources / expensesList.js中的冲突

但所有其他文件都是可以合并的,所以无论如何都要修复冲突,以指示git使用我的更改或传入的更改,这样我就可以运行合并而不会发生冲突

1 个答案:

答案 0 :(得分:1)

默认情况下,当Git由于一个或多个冲突的文件而无法自动合并时,它将中止合并并将标记放入冲突的文件中,这些文件将帮助您通过做出决定来手动解决冲突对于要保留哪个版本的每一个相互冲突的代码块。可以使用-Xours-Xtheirs标记修改此行为。

要合并并始终使用您的冲突文件版本,请使用:

git merge -Xours <branch>

要合并并始终使用冲突文件的远程版本(在本例中为协作者的版本),请使用:

git merge -Xtheirs <branch>

有关详细信息,请参阅Git文档中的Git Tools - Advanced Merging章节。