分享

为什么要用git merge

 兰亭文艺 2022-09-20 发布于加拿大

我的上一家公司用Github管理代码。

每个人在实现一个新功能的时候都会开一个feature branch,做完就提交pull request,代码审核完之后就merge到develop分支。

这是一组标准动作。但是在实际工作中,我们总是遇到这样一个问题。

不同分支的commit在merge到develop之后会,犬牙交错在一起。

由于某些原因,我们常常需要回滚已经合并到develop的代码。

由于各个feature branch的代码过于水乳交融,有好几次我们发现根本无法准确回退某些代码。

如果有些功能是急需发布的,但是由于混进去了有bug的代码又回退不了,这时候是相当急人的。

这个问题当时困扰了我们很久,最后解决这个问题的是一个小小的Git功能:Squash Merge。

Squash Merge其实很简单,它就是在merge分支的时候把分支上的所有commit合并为一个commit后再merge到目标分支。

用命令行的话就是 git merge --squash

Github里是可以配置pull request只允许使用squash merge的, 在repo的settings -> Merge Button里设置。

用上了squash merge后,每个被合并的分支在develop上就只有一个commit,不管要回退哪一个都很方便。

简单总结是,合并pull request用squash merge,可以让每个合并都只有一个commit,这样各个pull request间就互不干扰了。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多