繁体   English   中英

Git分支致力于开发,同时将一些更改合并到主版本中

[英]Git branches for working on dev while merging some changes into the master

以前,使用SVN,我将拥有一个分支,即我的开发分支,该分支与开发站点上的代码匹配。 有时,我会在开发分支中进行更改,然后将更改仅合并到主干中,以便将其投入生产。 我想知道如何用git完成类似的工作。

基本上,我希望能够将分支中的1个或几个提交合并到主服务器中,而不合并整个分支。

还是应该以其他方式使用git? (我需要立即发布更改,以便在所有更改完成之前无法发布。)我应该使用多个分支吗? 我可以将一个分支合并到多个其他分支吗?

您几乎回答了您的问题:是的,您可以将一个分支合并为多个其他分支。

因此,您要做的就是为此功能/错误修正创建一个分支(通用名称为“ topic”),从您要合并到其中的所有分支的共同祖先开始。 做您的工作,提交它,然后将其合并到所有这些中。

# say version 1.2.3 is a common ancestor, and it's tagged
git checkout -b bugfix v1.2.3

# do some stuff
git add ...
git commit

git checkout master
git merge bugfix

git checkout dev
git merge bugfix
...

这里的关键部分是确保从一个共同的祖先开始分支 如果不这样做,您最终也将合并其他内容。

如果由于某种原因很难找到一个好的共同祖先,则可以退而求其次 这实质上是将提交从一个地方复制到另一个地方。 但是,最好避免使用它,因为这确实意味着您将在历史记录中获得两次提交的副本。

我更喜欢在git中创建“主题分支”,在该分支中实现其功能。 然后,我可以选择是否将其合并到开发或生产中,或两者都合并。 这样可以继续进行功能开发,同时仍可以在合理的时间内将错误修复应用于生产。

其概念与此处解释的模型类似: http : //nvie.com/posts/a-successful-git-branching-model/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM