Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Git分支用于处理dev,同时将一些更改合并到master中_Git - Fatal编程技术网

Git分支用于处理dev,同时将一些更改合并到master中

Git分支用于处理dev,同时将一些更改合并到master中,git,Git,以前,使用SVN,我会有一个分支,它是我的开发分支,与开发站点上的代码相匹配。偶尔,我会在开发分支中进行更改,然后将更改合并到主干中,以便将其投入生产。我想知道如何使用git实现类似的功能 基本上,我希望能够将分支中的1个或几个提交合并到主分支中,而不合并整个分支 或者我应该以不同的方式使用git?(我需要立即释放更改,这样在所有更改完成之前我无法进行任何操作。)我应该使用多个分支吗?我可以将一个分支合并为多个其他分支吗?您几乎已经回答了您的问题:是的,您可以将一个分支合并为多个其他分支 因此,

以前,使用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中创建“主题分支”,在git中我在自己的分支中实现了一个功能。然后,我可以选择是否将其合并到开发或生产中,或者两者兼而有之。这允许功能开发继续进行,而bug修复仍然可以在合理的时间内应用于生产

其概念与此处解释的模型相似: