git修改已commit未push的注释信息
git rebase -i命令的修改已提交但未推送的注释信息
·
背景
- 工作中commit注释信息是有规范的,本地有个检测注释规范的钩子,它会拦截注释信息不符合规范的push操作
笔者折腾了很久,最后选择先copy文件,删了本地的仓库然后再重新拉仓库,copy文件进去解决了此问题(因为当时在测试阶段,比较紧急,想着快速解决先)
- 但事后我发现,这样的效率会很低,于是乎在网上搜索这种
未推送到远程仓库的注释信息
是否可以修改,于是乎写了此文章
直接用sourceTree的软合并
- ① 选择除了
已提交但未推送
的最前界面,然后选择【重置当前分支到此次提交】
- ② 选择软合并
- ③ 重新提交这些未推送到远程仓库的文件
git rebase -i命令的修改前提
- 请一定要记住,重要的事情说三次!!!
- 已提交但未推送到远程仓库的commit信息!
已提交但未推送到远程仓库的commit信息!
- 已提交但未推送到远程仓库的commit信息
该命令修改commit信息,不是在原有的commit结点上修改的,而是用一个新的节点替换原来节点,所以修改后
commit id是不同
的
commit历史记录
修改最近的一次提交
图形化工具sourceTree
- 点击提交 => 修改最后一次提交
通过
git commit --amend
- git命令行
-
① 在需要修改的
未push已commit
的分支,输入命令git commit --amend
-
② vim编辑器
- 先按i进入编辑模式,然后修改注释信息
- esc退出编辑模式
- shift + :wq保存且退出
-
③ git log查看状态
-
③ 在sourceTree中刷新分支再查看状态
- 未刷新的图形化界面
- 已刷新的图形化界面
- 未刷新的图形化界面
-
非最近一次提交
git命令行模式
-
① 输入git rebase -i HEAD~2(此修改仅针对
已提交但未推送
的注释信息)
-
② 此处关注reword和edit的不同:将需要修改的注释的pick替换为reword(缩写r)
reword
:允许您更改,但仅能修改注释,不能修改内容
edit
:允许您更改注释和内容 -
③ 替换后保存退出(:wq),然后会进入到另一个界面,仅需要修改相应的注释信息即可
-
④ git log查看状态
-
④ 刷新sourcetree查看修改的注释信息(强调仅针对
已提交未推送的注释信息
)
其他
- 若是修改非最近一次的注释信息,将pick替换为edit
可参考,苍枫露雨:git rebase -i命令修改commit历史
更多推荐
已为社区贡献1条内容
所有评论(0)