git rebase 把多次commit合并成一个

需求

开发过程,自己的一个模块没有完成或者有事情走开了,不想提交到仓库,但是有恐怕代码覆盖或者丢失,就把代码提交到本地仓库了,但是如果一个模块比较大的时候,自己本地提交的次数就比较多了,这样就不想在公司远程仓库中出现那么多commit,所以就想把本地的多次commit合并成一个提交到远程仓库中.

操作

  1. git log(尽量不要git pull, 会把别人的log pull下来)

    先查看一下log,要把前面多少次commit合并了
    git rebase 把多次commit合并成一个_第1张图片
    1.png

    我自己的log,我想把前面5个合并,然后ctrl+c 退出.
  2. git rebase -i HEAD~5

    命令中5代表合并的commit数,命令以后出现下面页面
    git rebase 把多次commit合并成一个_第2张图片
    2.png

    然后用vim命令修改pick,把图中头部5个中的pick修改为squash,注意只修改后四个,第一个不用修改,git会自动处理第一个,修改后保存退出,出现以下页面
    git rebase 把多次commit合并成一个_第3张图片
    3.png

    修改commit以后退出,就会出现下面页面
    git rebase 把多次commit合并成一个_第4张图片
    4.png

    表示合并成功.
  3. git pull
    现在要拉取代码,以免覆盖别人的代码.

  4. git push
    提交代码,把本地修改提交到远程仓库,这样看到远程仓库就一条commit记录.

你可能感兴趣的:(git rebase 把多次commit合并成一个)