从远程存储库中提取时使用rebase或merge?

时间:2016-01-23 09:11:11

标签: git merge rebase

我对Git有疑问。

我克隆了一个远程回购。所以我在本地机器上有一个主分支。我想在一些文件中做一些更改。所以我在当地创建了一个新分支并完成了我的工作。提交更改然后合并新分支和主分支。现在我准备将更改推送到远程仓库。

现在,我必须首先从repo中提取更改,然后推送我的更改。这样对吗?

如果是,我拉什么时应该用? Rebase还是Merge?

2 个答案:

答案 0 :(得分:2)

完全取决于你。但它们之间的区别在于修改git commit graph。

合并示例: 假设我有master和issue53 branches enter image description here

合并后的git commit图如下: enter image description here

Rebase示例: 让我说我有像这样的服务器分支和主分支 enter image description here

在主服务器上执行服务器的rebase操作之后的Git树 enter image description here

答案 1 :(得分:0)

正如 null1941 所建议的那样,这是对团队的偏好。但是在拉动代码时通常会坚持使用rebase。您将失去提交的顺序,但会使您的git历史呈线性。

让我们说你昨天提交了一个提交,但是你现在正在提取代码,这些代码已经提交了今天的提交。您昨天的提交将显示在顶部。但是,当以线性方式查看git历史时,很容易推断出变化。与merge中的情况不同,如果您有本地提交,则会创建合并提交。具有合并的存储库变得非常复杂,以找出哪些提交确实做了很多提交是合并提交。

仅在处理单独的分支时使用合并,并且您希望将更改发送到主服务器或将一个分支更改为其他分支。如果更改的数量很多,请不要将一个分支重新绑定到其他分支,因为如果代码发生了很大的变化,您必须解决很多冲突。