整理本地多次commit

来源:互联网 发布:执行偏差算法 is 编辑:程序博客网 时间:2024/06/06 02:23

1.背景

在接到一个需求之后,首先做的是git clone一份完整的代码下来.我个人的习惯是一个大的任务分成多个小任务,分次提交到local git server,全部完成了再整理log成1笔或者2笔,再push上去.

2.用到的命令

> git rebase -i  //选择一次commit ,并rebase在它上面> git commit --amend //修改上一次提交的log

3.过程

1.假设目前的local commit 的情况是下面这样的:    > git log --oneline   可以看到:      d23f4fd modify contents      f851b83 modify contents      89b49e2 add up test files      fb3cb18 first commit


2.现在开发已经完成完成了,需要整理本地的commit,我想把最近的3笔commit都合并到fb3cb18里面去.就要把不变的那笔commit ID 输进去.    > git rebase -i fb3cb18 接着git就会提示:    pick 89b49e2 add up test files                                                            pick f851b83 modify contents    pick d23f4fd modify contents然后下面还跟着一堆使用说明:    # Rebase fb3cb18..d23f4fd onto fb3cb18 (3 command(s))     //说明把上面的4次commit重新基于(rebase) fb3cb18进行提交.我们只要把上面      的pick换成squash(压缩),就能够合并这几笔commit了.修改后的内容如下:        squash 89b49e2 add up test files                                                                squash f851b83 modify contents        squash d23f4fd modify contents保存并退出.


3. > git log --oneline 可以看到:        fb3cb18 first commit只剩这一笔commit了,但是很明显这个log讯息不是我想要的.我需要再修改一下这个log.


4. > git commit --amend     我重新输入我想提交的讯息: implement XXX function. 保存并退出   > git log --oneline 可以看到:         1fb6d6a implement XXX function     说明log 已经整理完毕了,在提交之前和server做一次同步的动作,就可以git push 啦!
0 0
原创粉丝点击