git 合并commit提交

1、开发中 我们可能遇到这种情形: 在开发分支上多次commit

jari@DESKTOP-FBBQM3L MINGW64 /d/gitee/gitDemo (master)

$ git log

commit c8894255c8fbc436fe95daedbc035e412c92cca3 (HEAD -> master)

Author: tiankaixuan <17751676613@163.com>

Date:   Fri Dec 11 11:45:41 2020 +0800

   

    c 789

   

commit 9437f35e452e9a521aec9a253c5eff8e228155d1

Author: tiankaixuan <17751676613@163.com>

Date:   Fri Dec 11 11:45:20 2020 +0800

   

    b 456

   

commit 705f1fdf0236601c026188ceeb2796932fc75301

Author: tiankaixuan <17751676613@163.com>

Date:   Fri Dec 11 11:44:56 2020 +0800

   

    a 123

   

   

如果此时直接推送提交 , 小头目就会怼你了,因为你的多次提交不便于对比代码和查看提交内容,而且不好看。

   

   

2、rebase 粉墨登场

 git rebase -i  [startpoint]  [endpoint]

   

这个startpoint 和 endpoint 代表 开始的commitID 和 结束的commitID 。

   

该命令的就是对 startpoint 和 endpoint 之间所有的commitID进行操作。

   

(但是不包括 startpoint)

   

(如果只指定 startpoint , 那么endpoint默认指向当前节点)

   

   

3、执行

git rebase -i 705f1fdf0236601c026188ceeb2796932fc75301

   

   

pick:保留该commit(缩写:p)

reword:保留该commit,但我需要修改该commit的注释(缩写:r)

edit:保留该commit, 但我要停下来修改该提交(不仅仅修改注释)(缩写:e)

squash:将该commit和前一个commit合并(缩写:s)

fixup:将该commit和前一个commit合并,但我不要保留该提交的注释信息(缩写:f)

exec:执行shell命令(缩写:x)

drop:我要丢弃该commit(缩写:d)

   

我们需要的是合并 因此只需将 pick 改成 s ,然后保存退出。

   

   

   

4、保存退出后自动进入到新的交互页面

   

可以看到上面还是存在 2次提交信息 , 所以直接删除 , 添加新的提交信息

   

5、若是想合并 git rebase -i "commitID" 中的commitID

  • 那么可以直接使用 git rebase HEAD~3 ,那么此时合并的就是最近提交的3次分支

git rebase HEAD~3

   

6、保存退出。

使用 git log 查看日志

posted @ 2020-12-15 15:05  黑质白章  阅读(996)  评论(0编辑  收藏  举报