如何在 git 中合并文件而不发生冲突?

How do I merge files without conflict in git?

我们两个人在 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 (content): Merge conflict in src/resources/expensesList.js

但是所有其他文件都可以合并并且没问题,所以有没有解决冲突的办法,要么指示 git 使用我的更改或传入的更改,这样我就可以 运行 合并而不会发生冲突

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

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

git merge -Xours <branch>

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

git merge -Xtheirs <branch>

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