多分支的Git使用

多分支的Git使用,git,github,git-branch,Git,Github,Git Branch,我已经使用Git很多年了,但主要是在单个开发人员的场景中。现在我正在与一个团队一起进行一个项目,我不确定该用例的最佳实践: 我创建了一个分支(称之为feature1),用于将功能添加到master。feature1分支尚未合并到master中,但基本上已经完成了。但我现在必须开发一个新功能(它将进入名为feature2的分支),它依赖于我内置的一些代码feature1 我想创建feature2作为feature1的一个分支吗?或者我应该创建feature2作为master的一个分支,然后从fea

我已经使用Git很多年了,但主要是在单个开发人员的场景中。现在我正在与一个团队一起进行一个项目,我不确定该用例的最佳实践:

我创建了一个分支(称之为
feature1
),用于将功能添加到
master
feature1
分支尚未合并到master中,但基本上已经完成了。但我现在必须开发一个新功能(它将进入名为
feature2
的分支),它依赖于我内置的一些代码
feature1

我想创建
feature2
作为
feature1
的一个分支吗?或者我应该创建
feature2
作为
master
的一个分支,然后从
feature1
中提取我需要的项目吗

当两个分支最终合并到
master
中时,处理此问题的最佳方法是什么

我想创建feature2作为feature1的一个分支吗

对。在仍然具有feature2所需的所有必需提交的情况下,从最早的提交分支。(意思是:如果feature1有5次提交,而对于feature2,您只需要前2次提交,即第2次提交的分支。)那么您基本上拥有feature1和feature2共享同一个祖先,这很好

或者我应该创建feature2作为master的一个分支,然后从feature1中提取我需要的物品

不,您不希望在多个位置进行相同的提交。有时,提交会发生更改。这将使跟踪事情变得更加困难

我想创建
feature2
作为
feature1
的一个分支吗?或者我应该创建
feature2
作为
master
的一个分支,然后从
feature1
中提取我需要的项目吗

两种选择:

1。如果您认为
feature1
将在
feature2
之前发货

您希望从
feature1
分支,这是通常采用的方法

2。如果您认为
功能2
将在没有完整
功能1的情况下发货

您希望从
主控
分支,并添加所需的提交。您也可以从复制中获取代码,但这并不好

有更好的选择吗?

在某些情况下可能不可能,但我会从
feature1
中分离出您需要的功能,甚至可能合并到
master
。将此视为<代码>特性1>代码>和<代码>特征2>代码> 例如,
feature1
sdk
an添加方法的图像同时使用它。在
feature2
中,您需要可用的
sdk
方法。在这种情况下,您将隔离
sdk
更改,然后从中创建分支,而无需复制代码或使分支完全依赖于另一个分支

无论如何,变化越小越好: -创建小的(但有用的)要素分支 -尽快打开拉取请求以进行持续审查 -经常征求反馈意见,准备好后合并


其他人可能有不同的观点,但与SCM中的任何东西一样,这也有一点味道。

必须阅读材料:。您不必完全遵循这一点,但至少它会为您提供有用的见解。我觉得这不是学习的好地方。