一般我们使用git来开发都会有2个仓库:本地仓库和远程仓库
在我们本地修改代码后,会首先commit到本地的仓库里
当最终本地代码测试没问题后,才会用git push命令提交到远程仓库中
如果用默认的直接push,会把本地的所有的commit日志都会给push到远程
有时我们本地的很多commit信息都没有太大意义
只想往远程push一条commit信息
那么可以使用下面的命令:
git rebase -i origin/master
它允许你在push到远程之前来编辑自己的commit信息:
pick 9135aeb v2
pick c0ef644 v3
# Rebase 036a847..c0ef644 onto 036a847
#
# Commands:
# p, pick = use commit
# e, edit = use commit, but stop for amending
# s, squash = use commit, but meld into previous commit
#
# If you remove a line here THAT COMMIT WILL BE LOST.
# However, if you remove everything, the rebase will be aborted.
如上,本地有两条commit信息v2和v3
我们可以直接把v3对应的pick给修改成squash
pick 9135aeb v2
squash c0ef644 v3
这样我们就可以合并这2个commit信息到一条上了
然后,我们再执行下面的push就可以了
git push
rebase中的edit命令代表是rebase到对应的commit后停止
然后等待修改对应的文件后,再使用
git rebase –continue
来继续rebase的操作
另外:在rebase -i 时也可以直接删除对应行的commit信息
但这样做就会丢失那次commit所作的修改
所以,使用这个需要慎重