git修改中间commit

2022-07-13  本文已影响0人  _宋江_

可以通过rebse命令,修改最近一次提交以前的某次提交。不过修改的提交到当前提交之间的所有提交的hash值都会改变。

首先查看提交日志,以便变基后,确认提交历史的修改

git log

git rebase 可以用commit~n或commit^这种形式:前者表示当前提交到n次以前的提交,后者^符号越多表示的范围越大,commit可以是HEAD或者某次提交的hash值;-i参数表示进入交互模式。

git rebase -i <commit range>

以上rebase命令会进入文本编辑器,其中每一行就是某次提交,把pick修改为edit,保存退出该文本编辑器。

注意:rebase 命令打开的文本编辑器中的commit顺序跟git log查看的顺序是相反的,也就是最近的提交在下面,老旧的提交在上面

注意:rebase 命令其实可以同时对多个提交进行修改,只需要修改将对应行前的pick都修改为edit,保存退出后会根据你修改的数目多次打开修改某次commit的文本编辑器界面。但是这个范围内的最终祖先commit不能修改,也就是如果有5行commit信息,你只能修改下面4行的,这不仅限于commit修改,重排、删除以及合并都如此。

接下来修改提交描述内容或者文件内容:

git add -u *

git commit --amend

然后完成变基操作

git rebase --continue

上一篇下一篇

猜你喜欢

热点阅读