GIT 02 -git rebase -i 用法

来源:互联网 发布:黑暗风格数据地图 编辑:程序博客网 时间:2024/06/05 15:30

vim 中批量替换字符
命令行模式下:%s/[from-word]/[to-word]/

修改提交历史纪录

git rebase -i
图中红色区域即用来修改提交历史纪录的命令
这里写图片描述
提交记录中上面的是父提交,下面最近的提交

拆分提交记录
关键字:edit
用法:
更改子提交 pick 为edit,表示需要修改此次提交;然后reset到需要拆分的上次提交,但是保留工区的内容,再依次commit工作区中的内容;
git reset HEAD^
git add thirdA.txt
git commit -sm “this is thirdA commit ”
git add thirdB.txt
git commit -sm “this is thirdB commit ”
git rebase –continue

拆分后的提交记录
这里写图片描述

合并提交记录
关键字:squash
用法:
更改子提交 pick 为squash,表示与当前提交的父提交合并;
这里写图片描述
历史纪录前后对比
这里写图片描述

本次将两个提交合并为新的提交记录
afe15c36f72b9202060d9a068a3392a627d3abbf this is five commit T
15900665e3e154966a86ef75879ef91e3de45d07 this is four commit T

批量修改历史提交信息
关键字:reword
用法:
更改子提交 pick 为reword,表示修改历史提交信息;
这里写图片描述

修改历史记录前
这里写图片描述

修改历史记录后
这里写图片描述

删除历史纪录

修改pick为drop, 或者
直接删除所在的行

git rebase -i 用法说明

# Rebase b769e18..756b5d9 onto b769e18 (5 command(s))## Commands:# p, pick = use commit# r, reword = use commit, but edit the commit message# e, edit = use commit, but stop for amending# s, squash = use commit, but meld into previous commit# f, fixup = like "squash", but discard this commit's log message# x, exec = run command (the rest of the line) using shell# d, drop = remove commit## These lines can be re-ordered; they are executed from top to bottom.## If you remove a line here THAT COMMIT WILL BE LOST.## However, if you remove everything, the rebase will be aborted.## Note that empty commits are commented out
0 0
原创粉丝点击