我们正在开发一个有几个人的项目,并且具有以下分支结构(在服务器上):
master
staging
contributions
我已经要求人们在贡献分支中工作并要求他们克隆他们的存储库,如下所示:
git clone repository_address -b contributions
我的印象是上面的命令将克隆存储库并切换到contrib分支。我假设上面的命令也创建了一个指向远程contributions
分支的本地跟踪分支。
这是一个奇怪的部分:当有人推送到存储库时,GitHub上的历史记录就像预期的那样(你只会看到一个提交列表)。但是,如果在一个人推动另一个人推动之前,你会看到以下形式的两个提交消息:
这对我来说似乎非常直观,因为消息说“将分支贡献合并到贡献中”。此类提交的日志只是简单地显示自该人最后一次拉动以来已添加到分支的所有文件。
上面发生的事情是P在推动之前做了一次拉动,然后我自己,因为他的改变之前我不得不做一个拉动,然后我们两个人得到了一个额外的提交,说“合并”。
我们的设置有问题吗?
答案 0 :(得分:2)
执行git pull
时,执行两个命令:git fetch
和git merge
。由于git merge
,这些合并提交将显示在您的日志中。为避免这种情况,您可以使用git rebase
代替git merge
。为此,最简单的解决方案是使用git pull --rebase
。