如何避免在git中每次拉取文件时都选择版本?

How to avoid choosing the version each time I pull files in git?

让我们想想这个场景:我们是一个由 4 名开发人员组成的团队。我们正在一个已经存在的项目中工作,我们需要创建新功能。 对于新功能,没问题。我们必须选择谁来处理它,并且在 pull updates 之后它会顺利完成,因为它将是所有开发人员的新文件。

但是我们中的一个可以说是 programmer-1,他只会处理已经存在的代码中的一些问题。所以这意味着他将在他的本地 git 中进行更改,而不是推送到中央存储库。

好吧,假设程序员 1 花了一整天时间对 50 个文件进行了 100 次小改动。他添加、提交并推送到中央存储库。之后,程序员 2 将提取所有更改,但他可能会收到如下消息:

On branch master
You have unmerged paths.
...
...

因此programmer-2需要花费大量时间遍历所有50个文件并选择programmer-1更改。与程序员 3 和 4 相同。

那么,有没有办法设置 git 在 拉取 过程中接受所有更改,而不要求我们决定应该保留哪些更改?我们每次都会接受 programmer-1 的改动。

我找到了这个 post 但它没有正确解决问题。

如前所述,如果不存在冲突,Git 将实际处理大多数合并案例。唯一不会这样做的情况是存在它不知道如何解决的冲突。

这似乎不一定是 Git 问题,而更像是一个过程问题。开发人员似乎正在对代码库进行彻底的更改,应该更清楚地向每个人传达这会产生什么影响。要么,要么这些更改的范围需要缩减,因为它对您的工作有不利影响。

但是,如果您确定您将始终接受他们的更改,那么您可以查看合并他们的工作并接受他们的工作...

git fetch
git merge origin/branch --theirs

...或者您可以根据您的(在这种情况下我们的)重新调整他们的工作:

git fetch
git rebase --ours origin/branch

有关更多上下文,请查看有关 git-checkout 的文档。