squash commit合并多个commit

来源:互联网 发布:手把手教开淘宝店 编辑:程序博客网 时间:2024/06/06 03:34

在使用 Git 作为版本控制的时候,在我们开发完分支后,一般分支上会有很多 commit,我们可能会由于各种各样的原因提交了许多临时的 commit,而这些 commit 拼接起来才是完整的任务。在合并到主干的时候,往往这类 commit 显得臃肿多余。为了方便别人做 code review,我们希望合并一些不必要的 commit 使我们的分支显得干净一目了然,也方便管理。
使用pycharm
应用squash commit时有两种情形,情形一:
当我们在本地分支Branch1进行了多次commit并push到自己的远程git库并提交pull request后此时checkout到本地master分支,并从upstream/master中创建新的分支Branch2并fetch最新的项目代码,然后在pycharm中选中VCS-->Git-->Merge Change选中合并分支Branch1并勾选Squash commit,保存,再一次提交commit并push到自己远程git库的分支Branch2,最后我们对Origin/Branch2进行pull request,此时我们发现在中只剩下了一个commit!然后把在PR状态的远程分支Branch1关闭,PR状态的Branch2下的Discussion中添加Branch1的地址可以让他人访问看到之前做的所有commit
情形二:
我们在本地分支Branch1中只提交了一次commit1并push到了自己的远程库分支Origin/Branch1,同时提交了pull request,然而第二天我们发现本地分支Branch1上的代码有问题,进行修改后提交了commit2并同样push到Origin/Branch1,此时gitlab中Branch1分之下有了commit1和commit2,之后若要合并commit,和情形一操作相同,此时checkout到本地master分支,并从upstream/master中创建新的分支Branch2并fetch最新的项目代码,然后在pycharm中选中VCS-->Git-->Merge Change选中合并分支Branch1并勾选Squash commit,保存,再一次提交commit并push到自己远程git库的分支Branch2,最后我们对Origin/Branch2进行pull request,此时我们发现在中只剩下了一个commit!然后把在PR状态的远程分支Branch1关闭。

 

使用git.bash

和使用pycharm类似,们在本地分支Branch1进行了多次commit并push到自己的远程git库Origin/Branch1,并提交pull request后,如果想合并commit,

1.git checkout  master     checkout到本地master

2.git fetch  upstream/master       从原始远程库upstream/master上fetch最新的项目代码

3.git branch -b Branch2  在分支master上新建本地分支Branch2

4.git merge --squash Branch1  和本地分支Branch1合并

5.git commit -m  "squash commit"   提交commit信息

之后再gitlab或github中对Branch2提交PR同时关闭Branch1的PR状态

原创粉丝点击