git rebase -i 详解

git rebase -i

操作指令含义Git 信息(引入年份 / 最低版本)
pick (p)保留某个提交原样不变2007 / Git v1.5.4
drop (d)删除该提交2007 / Git v1.5.4
reword (r)修改提交信息2007 / Git v1.5.4
edit (e)修改提交内容(可暂停 rebase 来修改)2007 / Git v1.5.4
squash (s)合并到前一个提交(保留提交信息),清理历史但仍保留有意义的提交说明2007 / Git v1.5.4
fixup (f)合并到前一个提交(丢弃当前提交信息),快速合并临时提交不保留提交信息(如 WIP、update)2008 / Git v1.6.2

drop

# $ git log --oneline
 a1c019c (HEAD -> dev) update
 ddd538d update
 be04f1b update
⚠️c2812c1 update  📝基准
# 578941f update
# 277f35e (origin/release) new: 新建文件 111

 $ git rebase -i HEAD~3

// 弹出文件
 drop be04f1b update  ✍️删除
 drop ddd538d update  ✍️删除
 drop a1c019c update  ✍️删除
# # Rebase c2812c1..a1c019c onto c2812c1 (3 commands)

# $ git log --oneline
⚠️c2812c1 (HEAD -> dev) update   📝基准
# 578941f update
# 277f35e (origin/release) new: 新建文件 111

pick ,reword

# $ git log --oneline
 a1c019c (HEAD -> dev) update
 ddd538d update
 be04f1b update
⚠️c2812c1 update  📝基准
# 578941f update
# 277f35e (origin/release) new: 新建文件 111

 $ git rebase -i HEAD~3

// 弹出文件
pick be04f1b update    ✍️保持不变
reword ddd538d update  ✍️修改提交信息
pick a1c019c update    ✍️保持不变
# Rebase c2812c1..a1c019c onto c2812c1 (3 commands)
  
# $ git log --oneline
 85f8de7 (HEAD -> dev) update           🧠内容不变,sha改变
 87553e0 update-reword-修改 commit msg  🧠提交信息被修改,sha改变
 be04f1b update                         🧠内容不变,sha不变
⚠️c2812c1 update  📝基准
# 578941f update
# 277f35e (origin/release) new: 新建文件 111

edit

# $ git log --oneline
 a1c019c (HEAD -> dev) update
 ddd538d update
 be04f1b update
⚠️c2812c1 update  📝基准
# 578941f update
# 277f35e (origin/release) new: 新建文件 111
 
$ git rebase -i HEAD~3

// 弹出文件
pick be04f1b update
edit ddd538d update  ✍️修改提交
pick a1c019c update
# Rebase c2812c1..a1c019c onto c2812c1 (3 commands)
 
$ git add . && git commit --amend
$ git rebase --continue
# Successfully rebased and updated refs/heads/dev.

# $ git log --oneline
 2dcaeeb (HEAD -> dev) update     🧠内容不变,sha改变
 b095462 update-ameng commit msg  🧠提交内容被修改,sha改变
 be04f1b update                   🧠内容不变,sha不变
⚠️c2812c1 update  📝基准
# 578941f update
# 277f35e (origin/release) new: 新建文件 111

squash

# $ git log --oneline
 a1c019c (HEAD -> dev) update
 ddd538d update
 be04f1b update
⚠️c2812c1 update  📝基准
# 578941f update
# 277f35e (origin/release) new: 新建文件 111
# 

$ git rebase -i HEAD~3
 
// 弹出文件
pick be04f1b update
squash ddd538d update  ✍️压缩
squash a1c019c update  ✍️压缩
# Rebase c2812c1..a1c019c onto c2812c1 (3 commands)

# $ git log --oneline
 c3c60a3 (HEAD -> dev) update-rebase-squash  🧠已压缩,sha改变
⚠️c2812c1 update  📝基准
# 578941f update
# 277f35e (origin/release) new: 新建文件 111

fixup

# $ git log --oneline
 a1c019c (HEAD -> dev) update
 ddd538d update
 be04f1b update
⚠️c2812c1 update  📝基准
# 578941f update
# 277f35e (origin/release) new: 新建文件 111

$ git rebase -i HEAD~3

// 弹出文件
pick be04f1b update
fixup ddd538d update  ✍️压缩
fixup a1c019c update  ✍️压缩
# Rebase c2812c1..a1c019c onto c2812c1 (3 commands)
  
# $ git log --oneline
 2ddb48d (HEAD -> dev) update  🧠已压缩,sha改变
⚠️c2812c1 update  📝基准
# 578941f update
# 277f35e (origin/release) new: 新建文件 111
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值