Git分支用于处理dev,同时将一些更改合并到master中
以前,使用SVN,我会有一个分支,它是我的开发分支,与开发站点上的代码相匹配。偶尔,我会在开发分支中进行更改,然后将更改合并到主干中,以便将其投入生产。我想知道如何使用git实现类似的功能 基本上,我希望能够将分支中的1个或几个提交合并到主分支中,而不合并整个分支Git分支用于处理dev,同时将一些更改合并到master中,git,Git,以前,使用SVN,我会有一个分支,它是我的开发分支,与开发站点上的代码相匹配。偶尔,我会在开发分支中进行更改,然后将更改合并到主干中,以便将其投入生产。我想知道如何使用git实现类似的功能 基本上,我希望能够将分支中的1个或几个提交合并到主分支中,而不合并整个分支 或者我应该以不同的方式使用git?(我需要立即释放更改,这样在所有更改完成之前我无法进行任何操作。)我应该使用多个分支吗?我可以将一个分支合并为多个其他分支吗?您几乎已经回答了您的问题:是的,您可以将一个分支合并为多个其他分支 因此,
或者我应该以不同的方式使用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中创建“主题分支”,在git中我在自己的分支中实现了一个功能。然后,我可以选择是否将其合并到开发或生产中,或者两者兼而有之。这允许功能开发继续进行,而bug修复仍然可以在合理的时间内应用于生产
其概念与此处解释的模型相似: