git rebase -i 详解

发布于:2025-06-28 ⋅ 阅读:(19) ⋅ 点赞:(0)

git rebase -i

操作指令 含义 Git 信息(引入年份 / 最低版本)
pick § 使用该提交,rebase时用来保留某个提交原样不变 2007 / Git v1.5.4
drop (d) 删除该提交 2007 / Git v1.5.4
reword ® 修改提交信息 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
 87553e0 update-reword-修改 commit msg
 be04f1b update
 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
 b095462 update-ameng commit msg
 be04f1b update
 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
 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
 c2812c1 update
# 578941f update
# 277f35e (origin/release) new: 新建文件 111

网站公告

今日签到

点亮在社区的每一天
去签到