0

我们正在与几个人一起开展一个项目,并且具有以下分支结构(在服务器上):

master
staging
contributions

我已经要求人们在贡献分支中工作,并要求他们像这样克隆他们的存储库:

git clone repository_address -b contributions

我的印象是上述命令将克隆存储库并切换到贡献分支。我假设上面的命令也在创建一个指向远程分支的本地跟踪contributions分支。

这是奇怪的部分:当有人推送到存储库时,GitHub 上的历史记录与预期的一样(您只会看到提交列表)。但是,如果在一个人在另一个人推送之后推送之前,您会看到两条提交消息,用于稍后的推送,形式如下:

在此处输入图像描述

这对我来说似乎很反直觉,因为消息说“将分支贡献合并为贡献”。此外,此类提交的日志仅显示自该人上次拉取以来已添加到分支的所有文件。

上面发生的事情是 P 在推送之前做了一个拉动,然后我自己,因为他在推送之前的变化,我不得不做一个拉动,我们俩都得到了一个额外的提交,上面写着“合并”。

我们的设置有问题吗?

4

1 回答 1

2

当您执行 agit pull时,您执行两个命令:git fetchgit merge. 由于git merge,这些合并提交将显示在您的日志中。为避免这种情况,您可以使用git rebase代替git merge. 为此,最简单的解决方案是使用git pull --rebase.

于 2013-02-14T20:08:30.577 回答