git再基(git rebase)和合并(merge)的区别

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

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

合并是Git中的一种常见做法,用于集成从一个分支到另一个分支的更改。Git merge是一个将更改提交到另一个位置的命令。它允许开发人员将Git分支创建的独立代码行集成到单个分支中。这只会在源分支的历史保持不变的情况下更改目标分支。Git rebase是另一个基本上用于相同目的的命令,只是它的作用截然不同。它们都做相同的事情—将一个分支的提交合并到另一个分支—但区别在于它们是如何做的。我们强调了比较两者的一些关键区别点。

 

git再基(git rebase)和合并(merge)的区别

什么是合并分支(git merge)?

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

什么是git再基(git rebase)?

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

git再基(git rebase)和合并(merge)的区别

 

git rebase和merge之间的区别

  1. Git重基和合并的基础知识

–尽管合并和重基都是在Git中集成更改的最常见方法,它们的目的是相同的–将多个分支合并为一个分支–区别在于它们是如何实现的。Git merge集成了源分支和目标分支的内容,同时保留了每个提交历史的祖先,而Git rebase则通过为源分支中的每个提交创建新的提交来重写历史,从而合并了主分支中的所有新提交。

  1. Git重基合并工作

–使用Git merge,首先切换到要合并的分支,然后使用merge命令选择要合并的分支。假设分支指向提交,并且提交是与更改相关联的粒度,那么合并命令将在分支或提交级别进行合并。另一方面,Rebase有点不同。首先选择要重设基础的分支,然后使用“重设基础”命令选择将其放置的位置。

  1. Git重设基础和合并的目的

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

  1. Git重设基础和合并的历史

–Git merge不会更改历史记录,同时保留分支的上下文,这意味着现有分支不会以任何方式更改。它创建了一个新的提交(除非是快进合并),但是提交仍然可以从分支访问。另一方面,Git-rebase简化了一个潜在的复杂历史。提交被重写,旧版本被遗忘,修订的DAG被改变。使用rebase无法再访问提交,这意味着您无法再重新设置已发布分支的基础。

调整基础与合并:比较图

git再基(git rebase)和合并(merge)的区别

 

总结 - git rebase的(of git rebase) vs. 合并(merge)

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

  • 发表于 2021-06-25 22:29
  • 阅读 ( 158 )
  • 分类:IT

你可能感兴趣的文章

吉特(git)和github(github)的区别

关键区别–git与github 版本控制系统是一种帮助软件开发人员协作工作并维护其工作完整历史的软件。它可以存储文件的更改和源代码的修改。每次用户更改项目时,版本控制系统都会获取项目的状态并保存它们。项目的这些...

  • 发布于 2020-10-19 21:44
  • 阅读 ( 210 )

如何使用git分支来构造编程项目

...什么(打破?)在git中,分支会一直保留在那里,直到您合并它。 ...

  • 发布于 2021-03-12 01:24
  • 阅读 ( 293 )

像使用git的程序员一样管理文件版本控制

... 4合并您的更改 ...

  • 发布于 2021-03-13 08:00
  • 阅读 ( 263 )

为编写者和开发人员提供的5个最佳mac文件比较工具

... 文件比较工具帮助您比较和合并同一文件的两个(或多个)版本之间的差异。有不同类型的实用程序,每种都是为特定类型的数据和文件格式定制的。我们来看看一些最好的macOS文件比较应用程序。 ...

  • 发布于 2021-03-18 17:33
  • 阅读 ( 208 )

git的终极指南---索取你的免费电子书!

...Git所需的一切知识,从解释Git是什么以及它与其他工具的区别,到它的用法,包括将为版本控制过程增加价值的高级主题和实践。 ...

  • 发布于 2021-03-20 15:14
  • 阅读 ( 164 )

下面介绍如何清理git并删除未跟踪的文件

...以是不重要的,也可以是临时使用的遗留文件,也可以是合并或推动某些更改后以某种方式出现的文件。因此,这些未跟踪的文件仍然隐藏在您的工作树中,当您运行git status时,git将它们作为未跟踪文件返回。 ...

  • 发布于 2021-03-26 21:32
  • 阅读 ( 524 )

加入社会化编码潮流,为github存储库做出贡献

...保存此贡献的所有修改,这些修改稍后将由项目维护人员合并到主GitHub存储库中。分支必须是字母数字的,并且可以根据需要命名。 ...

  • 发布于 2021-03-27 04:33
  • 阅读 ( 226 )

如何在本地和远程删除git中的分支

...简单形式是删除本地分支,前提是该分支的所有更改都已合并: ...

  • 发布于 2021-03-28 02:05
  • 阅读 ( 337 )

如何在git中创建新分支

...创建起来很便宜,并且允许多个工作流共存,完成后可以合并。一旦您熟悉了创建、切换和合并分支,就可以充分利用Git的潜力了。 ...

  • 发布于 2021-03-29 17:44
  • 阅读 ( 223 )

作者如何使用github存储他们的作品

...影响另一个。如果您喜欢实践分支中的更改,可以将它们合并到主版本(或主分支)中。如果你不想那样做,那也没关系。把练习枝扔掉就行了。 分支非常强大,使用它们将是一个项目中有多个编写器的主要工作流。在我看来...

  • 发布于 2021-04-03 05:21
  • 阅读 ( 175 )
mup6644
mup6644

0 篇文章

相关推荐