用命令行一时爽,一直用命令行一直爽
git的merge操作
前情提要:这里假设要把feature/BACKEND-136合并到RELEASE/1.1上
切换到要合并到的分支上,使用
git checkout RELEASE/1.1
如果不记得分支名字了可以用
git branch -a
查看下分支信息执行一下
git pull
,保证本地该分支代码为最新的使用
git merge feature/BACKEND-136
命令将feature/BACKEND-136合并到当前所在的分支RELEASE/1.1上然后可以用
git log
命令看一下提交记录,可以看到后面的都是feature/BACKEND-136分支上的注释(里面<E8>什么的是中文乱码,所以以后提交要不都用英文吧,对windows用户友好,😓)现在我想要把这些注释都合成一行,不需要那么多注释,只想要这一个注释:
finish feature BACKEND-136
,那接下来就可以用git的rebase
命令了按下q退出git log的状态,我这里执行
git rebase -i e1ba525035be07564ca4a484a054a8edf5112774
,里面一大串指的是commit后面的那串编号(看别人的貌似可以缩写),他会把这个commit之上的commit都拿到,让你后续进行操作。 然后会看到一个vim界面类似的,按下i开始编辑,我把除了第一个的pick
改成了s
pick:保留该commit(缩写:p) reword:保留该commit,但我需要修改该commit的注释(缩写:r) edit:保留该commit, 但我要停下来修改该提交(不仅仅修改注释)(缩写:e) squash:将该commit和前一个commit合并(缩写:s) fixup:将该commit和前一个commit合并,但我不要保留该提交的注释信息(缩写:f) exec:执行shell命令(缩写:x) drop:我要丢弃该commit(缩写:d)
大概意思是把s标注的都往前合并,最后就只留下第一个commit了。然后按下esc,输入:wq回车出来
这时会来到另一个页面(也是vim样界面),写上这个commit的注释就好了,把其他的通通删掉
改成了这样:
把注释改完之后,同样的方式:esc,输入:wq回车退出
再次执行
git log
看看,发现你之前的记录都消失了,只留下了最后你输入的哪个commit最后万事大吉直接
git push
就好了,希望不要出意外,少女祈祷中。就完事了。
来源
一些来源参考: https://www.jianshu.com/p/4a8f4af4e803