当前位置:   article > 正文

squash commit合并多个commit

squash commit

在使用 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状态

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/491106
推荐阅读
相关标签
  

闽ICP备14008679号