Git代码合并使用Rebase还是Merge,区别?

本文详细介绍如何使用Git的rebase命令优化提交历史,包括合并多个提交、更新本地分支以匹配远程分支的最新状态,以及如何在合并过程中处理冲突。通过遵循这些步骤,可以保持Git仓库的整洁,提高代码审查效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用git协同开发是否对提交的大量无用合并代码记录感到烦烦烦,没啥用又不想看到,就像下图一样,如何让提交、合并记录更简洁明呢?请往下看:

官方说不能直接使用merge,最好先使用rebase;

因为如果直接使用merge会将自己新增的功能与最新的版本合并成一个新的版本。而使用rebase是先把最新的版本拉下来,并把自己新增功能的改动编辑在最新的版本里,这样再次提交时,我们新增的改动就是一个独立的版本而不是与某个版本合并所产生的版本。

1.git remote -v 先查看下起源避免出错 

2.git checkout ChangeCode 先切换到自己的项目分支

3.git log 查看下日志,并判断需要将多少个日志合并,:wq切换到输入模式;

4.git rebase -i HEAD~3 把顶部的3个版本聚到一起进入编辑页面

5.把需要压缩的日志前面的pick都改为s(squash的缩写)

这里要注意必须保留一个pick,如果将所有的pick都改为了s那就没有合并的载体了就会报如下错误

7.使用vim指令把每个message之间的空格行给删除,并输入:wq

最终达到的效果是这样 Successfully rebased and updated refs/heads/xxx

然后保存退出,git会压缩提交历史,如果有冲突,需要修改,修改的时候要注意,保留最新的历史,不然我们的修改就丢弃了。修改以后要记得敲下面的命令:

        git add .

        git rebase --continue

如果你想放弃这次压缩的话,执行以下命令:

git rebase --abort

如果没有冲突,或者冲突已经解决,则会出现如下的编辑窗口:

8. 想获取develop的最新版本必须先切换到develop  --------git checkout develop

9. git pull origin develop  获取最新的develop版本

10. 需要先切换到自己的分支,才能对develop进行rebase -----git checkout NewFix

11. git rebase develop  把自己新开发的功能快进最新版本

12. 这时候需要先切换到主干才能把自己的分支合并  ------git checkout develop

13. git merge NewFix  这时候才能合并

14. git push origin develop  推到自己的起源代码仓库

15. 在网页上创建pull request向管理员提交变更

附加几个常用指令:

git branch    查看分支

git reflog      查看这个项目的修改记录

git log --graph --oneline  显示前六位log码和对应的message

git checkout -b NewFix  在主分支上建立一个新的分支。

git cherry-pick ChangeBadCode 在新的分支上复制旧分支的改变

git branch -d ChangeBadCode 删除一个分支。 -D是强制删除

git add .  把改动全部加上。 (可以先用git status显示出不同的diff)然后add 单个文件

git commit --amend  给刚提交的commit订一下,但是不生成log  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一个小狼娃

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值