自学内容网 自学内容网

将多个commit合并成一个commit并提交

0 Preface/foreword

1 压缩多个commit方法

1.1 git merge --squash

主分支:main

开发分支:test

当前在test分支提交了8个commits,功能已经开发完成,需要将test分支合并到main分支,但是不想在合并时候,看到有8个commits,而是指显示一个commit记录,即将test分支下的8个commits压缩成一个。

方法:在main分支使用如下命令:

git merge --squash test

此时,在main分支下会将test中的差异内容加入(类似git add),

需要手动git commit添加comment,

最后使用git push将代码同步到远程repository。

缺点:直接在目标分支提交commit,而不是合并方式。

1.2 git reset

1.3 git rebase

可以使用以下命令:

git rebase -i HEAD~n

n:表示从当前commit开始计算,计算到第一次提交的commit时候的数字。 

或者

git rebase -i lastCommitID

lastCommitID是n对应的commit ID上一个提交。(522c3

将需要压缩的commit,最前面用squash或者s。

修改第一条commit的comment。

1.4 GitLab在Web上操作方法

GitLab Web界面,在Merge request时候,有一个check box用于选择是否需要squash(当且仅当有多个commit才会有squash选项)。 

 

需要squash的原因如下

What's the process about collaboration among different teams using GitHub.

  • cannot push code into main before agreement by each team
  • create merge request/ pull request. etc...
  • review code, comment, reject...
  • branch commits should be squashed when merging into main, which will be easy for maintain.

原文地址:https://blog.csdn.net/yanlaifan/article/details/143332377

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!