从遥控器拉动会给分支带来不同的历史吗?

Ian*_*ton 1 git

如果两个人正在跟踪同一个远程分支并且首先推送一个分支,那么第二个人不能推送,直到他们用另一个人的更改更新他们的分支.

所以,如果我是第二个人,那么在我完成拉动之后,我的历史会发生什么?我是否获得了单个合并提交,或者它是否进行了rebase并将我的更改放在另一个人所做的事情的最后?

如果它是前者,那么这是不是意味着即使我的分支跟踪远程分支,它实际上有不同的历史?

Sch*_*eis 6

这取决于你如何拉动变化

git pull在本地分支和远程的合并提交中执行结果.

执行操作git pull --rebase将在远程控制器上发生的任何更改后移动您的更改.

根据手册http://git-scm.com/docs/git-pull

pullgit fetchgit merge命令的组合.将--rebase第二个命令的更改添加到git rebase

在这两种情况下,您的历史记录都与远程记录不同,因为您在本地提交了提交(可能还有合并提交).这就是为什么你会在你的状态中看到你'提前X提交'.直到你推,在这种情况下,遥控器和你的本地历史将是相同的...直到别人推.

在这种git pull情况下,如果你要看历史git log --graph.您将在提交之前看到历史记录(这是您当时从远程进行的最后一次提交).然后会有一个分支显示第二个人的提交,另一个分支显示你的提交.这些分支将在第三次提交时加入,例如"将分支主服务合并为主服务器".这是解决分支和远程之间差异的合并提交.

这样做git pull --rebase,日志将与第二个人的提交一行,然后是您的提交.