git merge squash 和 rebase 区别

本文详细介绍了Git中merge、squash merge和rebase merge三种合并方式的差异。普通merge会保留所有commit历史,可能导致历史记录混乱。而squash merge将多个commit合并为一个,简化历史但改变author。rebase merge则能保持master分支整洁,同时保留作者信息,但需开发者执行变基操作,回滚相对复杂。
摘要由CSDN通过智能技术生成

在合并分支的时候,默认是有三种选项的,分别是

  • 普通的 merge
  • squash merge
  • rebase merge

普通 Merge

说到合并分支,可能我们最熟悉的操作是这样的:

  • 先切换到目标分支:git checkout master
  • 执行命令:git merge devel
  • 删除旧分支(可以在上面一同做):git branch -D devel
  • 提交到远程分支:git push origin master

假设合并之前的这样的:
git commit history

我们这么上述操作之后,分支的 commit 历史将会是这样的:
git commit history

看上去是一条直直的 commit line,我们在 devel 分支中的 commit 也是一个不差得保留在了 master 中。但是很多时候,我们并不需要那么多的 commit,假设你给一个开源项目提交一个 Bug Fixes,然后一个简单的修改因为你的粗心大意 pull request 了十几个 commit 过去,如果作者给你 merge 了,这

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值