如何在团队成员提交时阻止 Git 进行额外的合并提交

How to stop Git from making extra merge commits when team members make commits

我有一个 class 的学生,我们都在一个存储库中工作,并不断检查小的状态更新和代码等。

我们注意到,除了我们所做的提交之外,Git 似乎也创建了合并并将它们签入,请参见屏幕截图。

这些提交充满了来自其他团队成员的更改,因此只会让我们感到困惑,使我们的 git 历史变得混乱。

这些自动提交是什么?有什么方法可以配置 Git 不进行这些提交?

您的评论解释了发生这种情况的原因:

We're simply updating files in each of our directories, pushing them as commits to the dev branch at GitHub and pulling commits from the dev branch from GitHub.

导致合并提交的是。大概你们都在检查 dev 分支,进行提交,并在某个时候拉取最新的。当您从分支的远程版本 中提取提交时,您在本地分支上也有新的提交,Git 中的默认设置将创建一个合并提交。

要避免它,您有几种选择:

  1. 拉动时,使用git pull --rebase。这会将您的本地提交重新设置为 dev 的最新版本,而不是创建合并提交。如果这是你决定要走的路,你可以让每个人都configure this to happen automatically
  2. 别拉了。如果您想更新 dev 的本地副本,请先执行 git fetch,然后执行 git rebase origin/dev。结果与#1 相同,但这更明显地表明您正在这样做。
  3. 与 #2 类似,您可以开始使用单独的分支,而不是每个人都在 dev 上工作。在合并到 dev 之前,先执行 git fetch,然后执行 git rebase origin/dev

第 3 种方法可能是最好的方法,但工作流程稍微复杂一些。但是如果您想同时处理不同的事情,它可以进行任务切换。

尝试使用 git pull -r 在最新的 origin/master 之上重新提交您的提交,而不是创建合并提交。尽管要与您的队友一起创建适当的工作流程,您应该使用分支,但这是一种摆脱合并提交的方法。