如何在团队成员提交时阻止 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 中的默认设置将创建一个合并提交。
要避免它,您有几种选择:
- 拉动时,使用
git pull --rebase
。这会将您的本地提交重新设置为 dev
的最新版本,而不是创建合并提交。如果这是你决定要走的路,你可以让每个人都configure this to happen automatically。
- 别拉了。如果您想更新
dev
的本地副本,请先执行 git fetch
,然后执行 git rebase origin/dev
。结果与#1 相同,但这更明显地表明您正在这样做。
- 与 #2 类似,您可以开始使用单独的分支,而不是每个人都在
dev
上工作。在合并到 dev
之前,先执行 git fetch
,然后执行 git rebase origin/dev
。
第 3 种方法可能是最好的方法,但工作流程稍微复杂一些。但是如果您想同时处理不同的事情,它可以进行任务切换。
尝试使用 git pull -r
在最新的 origin/master 之上重新提交您的提交,而不是创建合并提交。尽管要与您的队友一起创建适当的工作流程,您应该使用分支,但这是一种摆脱合并提交的方法。
我有一个 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 中的默认设置将创建一个合并提交。
要避免它,您有几种选择:
- 拉动时,使用
git pull --rebase
。这会将您的本地提交重新设置为dev
的最新版本,而不是创建合并提交。如果这是你决定要走的路,你可以让每个人都configure this to happen automatically。 - 别拉了。如果您想更新
dev
的本地副本,请先执行git fetch
,然后执行git rebase origin/dev
。结果与#1 相同,但这更明显地表明您正在这样做。 - 与 #2 类似,您可以开始使用单独的分支,而不是每个人都在
dev
上工作。在合并到dev
之前,先执行git fetch
,然后执行git rebase origin/dev
。
第 3 种方法可能是最好的方法,但工作流程稍微复杂一些。但是如果您想同时处理不同的事情,它可以进行任务切换。
尝试使用 git pull -r
在最新的 origin/master 之上重新提交您的提交,而不是创建合并提交。尽管要与您的队友一起创建适当的工作流程,您应该使用分支,但这是一种摆脱合并提交的方法。