赞
踩
在使用 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状态
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。