一、说明
代码提交过程中往往会需要更改comment,亦或者合并提交等等,此时就需要通过git相关指令做调整。
二、使用场景
- 1、修改已提交的
commit message
提交备注时可能会出现打错字、说明错误等情况。
- 2、分支提交混乱,需要梳理
多人开发分支提交先后产生冲突,
merge
之后git记录呈现树状。
- 3、合并多次修改提交
上线打包前(上线后git不做合并等改动),连续提交多次,各种遗漏或者缺少,实则为统一的某个需求。
三、使用方式
- 指令与说明
多用多熟悉
git rebase -i HEAD~5
// 对之前的commit 提交进行修改
git commit --amend
// next
git rebase --continue
———————————————————————————————————————————————
// 期间出现如下相似内容,我习惯称为pick区块
pick 8b4953d921 xxxxxx
pick 65495b897a xxxxxx
pick e77367fb5a xxxxxx
1、修改pick为`squash\edit`,进入合并或修改commit界面
2、最终都会进入编辑模式修改`commit message`,区别在于一个是修改合并之后的comment,另一个单次只修改一项
3、熟知常规`:wq`等操作并完成修改
4、如修改多个`edit`,执行`git rebase --continue`循环操作,直至全部修改完
// 注:有些软件有傻瓜式操作界面,可以快捷实现,原理一致
-
参数介绍
HEAD~5:表示从最新的提交开始选取历史提交记录条数,HEAD
代表最新提交节点,5
数字为选取的条数,按需选择。
squash:pick区块
最下面为选取的最新提交,自下而上选择需要合并的提交,修改每一个需要合并的pick
为squash
(不能跨记录合并,即squash
记录需要连续)。
edit:想要修改哪几个提交就把那几条记录的pick
改成edit
。 -
其他(备注)
1、修改大批量整合或已推远程的记录需要做好备份以防万一弄错
2、修改远程记录可以本地改完之后强推git push -f origin/master
3、comment修改可以通过git commit --amend -m "提交描述"
实现
4、merge
后排序混乱呈树状可以通过git rebase
的方法整理,有冲突解决冲突,重新提交即可
网友评论