Git是一个分布式版本控制系统–一种用于跟踪对一组文件所做的更改或协调工作的工具。程序员经常使用它来协调对软件源代码和最佳部分的更改。它完全可以用来跟踪任何种类的内容。它专门设计用于以最大的速度和效率处理从小到大项目的所有事务。这是非常灵活的,这意味着个人可以在其个人存储库之间直接共享工作,而组可以通过中央存储库协调其工作流程。它仅允许两个位于两个不同位置的开发人员独立进行和记录更改,而无需中央存储库。

合并是Git中的一种常见做法,用于将更改从一个分支集成到另一个分支。 Git merge是将更改提交到另一个位置的命令。它允许开发人员采用由Git分支创建的独立代码行,并将其集成到单个分支中。这仅在保留源分支的历史记录的同时更改目标分支。 Git rebase是另一个用于相同目的的命令,除了它的执行方式完全不同。他们俩都做相同的事情–将一个分支的提交合并到另一个分支–但是区别在于它们的执行方式。我们重点比较了两者的一些关键区别点。

Git Rebase和Merge

什么是Git Merge?

Git merge是统一两个或多个提交历史分支的命令。合并通常只合并两个分支,尽管Git支持同时合并三个,四个或更多分支。 Git pull使用Git合并来合并从一个分支到另一个分支或从另一个存储库的更改。合并必须在单个存储库中进行,这意味着需要合并的所有分支都应存在于同一存储库中。合并情况通常是由两个或多个用户试图更新通用代码引起的。最常见的是,用户将分支合并到本地环境中本地存储库中的另一个分支中。 Git merge专门将源分支的内容与目标分支集成在一起。目标分支已更改,而源分支仍保留。
Git Merge

什么是Git Rebase?

Git rebase是合并的另一种替代方法,用于将另一个分支与您当前正在使用的分支集成在一起,但它保留了线性提交历史记录。 Git变基的目的是将分支从一个位置移动到另一位置。由于提交是不可变的,因此无法移动它们,因此这需要使用相同的变更集和元数据进行新的提交。重新构建从根本上改变了何时以及在何处进行一系列提交的概念,这导致开发历史的某些方面丢失了。这意味着将更改开发最初所基于的原始提交。通过重写历史记录,它有效地将所有新提交合并到master分支中。结果,它为原始分支中的每个提交创建新的提交。

Git Rebase和Merge的区别

  • Git Rebase和Merge的基础
    尽管Rebase和Merge都是整合Git中更改的最常见方法,并且它们具有相同的目的-将多个分支合并为一个-区别在于它们如何实现。 Git merge将源分支的内容与目标分支集成在一起,同时保留每个提交历史记录的祖先,而Git rebase通过重写历史记录(通过为源分支中的每个提交创建新的提交来重写历史记录)来将所有新提交合并到master分支中。

  • Git Rebase和Merge的工作
    使用Git merge,您首先切换到要合并的分支,然后使用merge命令选择要合并的分支。假定分支指向提交,并且提交是您与更改关联的粒度,则合并命令在分支或提交级别合并。另一方面,Rebase有点不同。首先,选择要Rebase基准的分支,然后使用rebase命令选择将其放入的位置。

  • Git Rebase和Merge的目的
    Merge会创建一个新的提交,表示两个分支之间的合并。它通过创建合并提交将来自不同并行开发线(分支)的更改集成在一起。目的是将两个或多个分支合并在一起,包括从分支点到当前分支以来的所有更改。快进是Git中的默认合并行为。另一方面,Rebase通过在原始分支中为每个提交创建新的提交来重写项目历史记录,从而改变单个提交,从而导致线性历史记录而没有分歧的分支。

  • Git Rebase和Merge的历史
    Git合并不会更改历史记录,同时保留分支的上下文,这意味着现有分支不会以任何方式更改。它创建一个新的提交(除非是快速合并),但是这些提交仍然可以从分支访问。另一方面,Git rebase简化了潜在的复杂历史记录。提交被重写,旧版本被遗忘,并且修订版的DAG被更改。Rebase不再可以实现提交,这意味着您不再能够为已发布的分支Rebase基础。

简而言之, Rebase和Merge都是在Git中集成更改的两种方式,但是它们的操作方式不同。 合并是一个一步操作,只需一个位置即可解决冲突,并且分支中可以到达的提交仍然可以到达。 另一方面,Rebase通过为源分支中的每个提交创建新的提交来重写历史记录,从而分别重新应用每个提交。 因此,曾经可以到达的东西不再可以到达。 Rebase从根本上改变了开发提交序列的时间和地点的概念。

欢迎任何形式的转载,但请务必注明出处,尊重他人劳动成果。
转载请注明:文章转载自 有区别网 [http://www.vsdiffer.com]
本文标题:Git Rebase和Merge
本文链接:https://www.vsdiffer.com/vs/git-rebase-vs-merge.html
免责声明:以上内容仅是站长个人看法、理解、学习笔记、总结和研究收藏。不保证其正确性,因使用而带来的风险与本站无关!如本网站内容冒犯了您的权益,请联系站长,邮箱: ,我们核实并会尽快处理。