Git 中 merge 和 rebase 的区别

简介: $ git pull --rebase和$ git pull区别是git fetch + git merge FETCH_HEAD的缩写,所以默认情况下,git pull就是先fetch,然后执行merge操作,如果加-rebase参数,就是使用git rebase代替git merge 。

$ git pull --rebase$ git pull区别
git fetch + git merge FETCH_HEAD的缩写,所以默认情况下,git pull就是先fetch,然后执行merge操作,如果加-rebase参数,就是使用git rebase代替git merge 。更新本地仓库


merge 和 rebase
merge 是合并的意思,rebase是复位基底的意思。
现在我们有这样的两个分支,test和master,提交如下:

     D---E test
    /
A---B---C---F master

在master执行git merge test然后会得到如下结果:

     D--------E
    /          \
A---B---C---F---G    test , master

在master执行git rebase test,然后得到如下结果:

 A---C---D---E---C `---F` test , master

可以看到merge操作会生成一个新的节点,之前提交分开显示。而rebase操作不会生成新的节点,是将两个分支融合成一个线性的操作。

通过上面可以看到,想要更好的提交树,使用rebase操作会更好一点,这样可以线性的看到每一次提交,并且没有增加提交节点。
在操作中。merge操作遇到冲突时候,当前merge不能继续下去。手动修改冲突内容后,add 修改,commit 就可以了
而rebase操作的话,会中断rebase,同时会提示去解决冲突。解决冲突后,将修改add后执行git rebase -continue继续操作,或者git rebase -skip忽略冲突。

目录
相关文章
|
6天前
|
开发工具 git 开发者
git rebase的使用
通过这些思维导图和分析说明表,您可以更直观地理解Git rebase的概念、用法和应用场景。希望本文能帮助您更高效地使用Git rebase,提高代码管理的效率和质量。
38 17
|
8天前
|
开发工具 git 开发者
git rebase的使用
通过这些思维导图和分析说明表,您可以更直观地理解Git rebase的概念、用法和应用场景。希望本文能帮助您更高效地使用Git rebase,提高代码管理的效率和质量。
41 13
|
25天前
|
前端开发 持续交付 开发工具
理解前端开发中的 Git - Rebase
Git Rebase 是前端开发中常用的一种版本控制操作,用于将一个分支的更改整合到另一个分支。与合并(Merge)不同,Rebase 可以使提交历史更加线性整洁,有助于保持代码库的清晰和可维护性。通过 Rebase,开发者可以将特性分支的改动应用到主分支上,同时保留或重写提交记录。
|
2月前
|
存储 开发工具 git
Git和SVN有什么区别?
综上所述,选择Git还是SVN取决于项目的具体需求、团队规模以及工作习惯。Git因其高级特性和灵活性,成为了现代软件开发中更受欢迎的选择,而SVN在某些特定场景下仍保有一席之地。开发者应当根据实际情况,权衡两者之间的优劣,作出最适合项目的选择。
83 4
|
4月前
|
开发工具 git 开发者
|
4月前
|
开发工具 git 开发者
Git Fetch 和 Git Pull:理解两者的区别
【8月更文挑战第27天】
402 1
|
3月前
|
网络性能优化 开发工具 git
使用git rebase --onto一例
使用git rebase --onto一例
|
5月前
|
开发工具 git 开发者
git IDEA的分支合并时的冲突问题总结,merge和rebase的区别
冲突的处理需要开发者之间的充分沟通以及对项目历史的细致理解。选择Merge或Rebase取决于具体的工作流程和团队偏好,但最重要的是保持代码库的整洁与一致性。使用IDEA等工具可以提高处理合并冲突的效率,但手动解析冲突和理解操作背后的逻辑仍然是不可或缺的。最终目标是通过有效的版本控制实践,促进项目的顺利进行和团队协作的高效。
349 0