赞
踩
目录
经常碰到git commit后感觉不合适,需要修改commit 的情况,网络上一顿搜索,然后修改。
今天趁着有时间,总结一下,方便以后查阅。
建立一个本地仓库,修改多次,提交多次
mkdir coding_demo && cd coding_demo && git init
(1)文件夹添加文件,并提交,循环4次,然后git log看日志
- touch txt1.txt && git add . && git commit -m 'add txt1'
- touch txt2.txt && git add . && git commit -m 'add txt2'
- touch txt3.txt && git add . && git commit -m 'add txt3'
- touch txt4.txt && git add . && git commit -m 'add txt4'
- git log
如下图所示
git commit --amend
弹出类似VIM界面后,键盘按下“i”进入编辑模式,将“add txt4”修改为“fix a bug”,键盘按下ESC退出编辑模式,然后键盘按下":wq"即保存退出。跟VIM界面一样,然后再次
git log
如无意外,日志修改成功了。
(本来想把第一次的commit修改为init,可是尝试多次都不行,再者说这需求自己也用不上,舍弃)。
采用 git rebase -i ,常看log,注意:改第二次的commit,那么就要定位到第一次提交的HEAD。如下操作:
git rebase -i a6be63fc0a203cce8e6fdd94731507721a561a70
弹出以下窗口:
(
选项注释如下:
pick:保留该commit
reword:保留该commit,但修改该commit的注释
edit:保留该commit, 但停下来修改该提交(不仅仅修改注释)
squash:将该commit和前一个commit合并
fixup:将该commit和前一个commit合并,但我不要保留该提交的注释信息
exec:执行shell命令
drop:丢弃该commit
)
修改如下(不需要修改commit,因为一会还要弹出修改界面),然后保存退出
然后,弹出修改界面:
修改如下,保存退出
再通过git log查看信息,已经改过来了
git rebase -i HEAD~3
修改如下,即把第三次、第四次的commit合并到第二次合并
弹出以下界面
修改如下:
最后git log查看,修改成功(log内容也可以修改也可以删除):
rebase错误了,可以采用以下指令:
git reset --hard HEAD
HEAD就是以下红色指向
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。