Git 多个分支的用法
Git usage with multiple branches
多年来我一直在使用 Git,但主要是在单个开发人员场景中使用。现在我正在和一个团队一起做一个项目,我不确定这个用例的最佳实践:
我创建了一个分支(称之为 feature1
),用于向 master
添加功能。 feature1
分支还没有合并到 master 里面,但是基本上已经合并了。但我现在必须开发一项新功能(它将进入一个名为 feature2
的分支),它取决于我在 feature1
中构建的一些代码。
我想创建 feature2
作为 feature1
的分支吗?或者我应该创建 feature2
作为 master
的分支,然后从 feature1
中提取我需要的项目?
当两个分支最终合并到 master
时,在不引起问题的情况下处理此问题的最佳方法是什么?
Would I want to create feature2 as a branch of feature1?
是的。在仍然拥有 feature2 所需的所有必需提交的同时,从可能的最旧提交中分支出来。 (意思是:如果 feature1 有 5 次提交,而对于 feature2,你只需要前 2 次,从第 2 次分支出来。)然后你基本上让 feature1 和 feature2 共享同一个祖先,这很好。
Or should I create feature2 as a branch of master, and then pull in the items I need from feature1?
不,您不希望在多个地方进行相同的提交。有时会发生提交被更改的情况。这将使跟踪事情变得更加困难。
Would I want to create feature2
as a branch of feature1
? Or should I create feature2
as a branch of master
, and then pull in the items I need from feature1
?
两个选项:
1.如果您认为 feature1
会在 feature2
之前发货
您想从 feature1
分支,这是通常采用的方法。
2。如果您认为 feature2
将在没有完整 feature1
的情况下发货
您想从 master
分支,并添加您需要的提交。您也可以通过复制它来获取代码,但这不是 nice。
还有更好的选择吗?
在某些情况下可能无法实现,但我会将您需要的内容与 feature1
隔离开来,甚至可能合并到 master
。将其视为 feature1
和 feature2
之间的新基数。
例如feature1
添加方法到sdk
的图像同时使用它。在 feature2
中,您需要 sdk
方法可用。在这种情况下,您将隔离 sdk
更改,然后从那里创建分支,而不必复制代码或让一个分支完全依赖另一个分支。
总之,变化越小越好:
- 创建小的(但有用的)功能分支
- 尽快打开拉取请求以进行持续审查
- 经常寻求反馈并在准备好时合并
其他人可能有不同的看法,但作为 SCM 中的任何东西,这都有点味道。
多年来我一直在使用 Git,但主要是在单个开发人员场景中使用。现在我正在和一个团队一起做一个项目,我不确定这个用例的最佳实践:
我创建了一个分支(称之为 feature1
),用于向 master
添加功能。 feature1
分支还没有合并到 master 里面,但是基本上已经合并了。但我现在必须开发一项新功能(它将进入一个名为 feature2
的分支),它取决于我在 feature1
中构建的一些代码。
我想创建 feature2
作为 feature1
的分支吗?或者我应该创建 feature2
作为 master
的分支,然后从 feature1
中提取我需要的项目?
当两个分支最终合并到 master
时,在不引起问题的情况下处理此问题的最佳方法是什么?
Would I want to create feature2 as a branch of feature1?
是的。在仍然拥有 feature2 所需的所有必需提交的同时,从可能的最旧提交中分支出来。 (意思是:如果 feature1 有 5 次提交,而对于 feature2,你只需要前 2 次,从第 2 次分支出来。)然后你基本上让 feature1 和 feature2 共享同一个祖先,这很好。
Or should I create feature2 as a branch of master, and then pull in the items I need from feature1?
不,您不希望在多个地方进行相同的提交。有时会发生提交被更改的情况。这将使跟踪事情变得更加困难。
Would I want to create
feature2
as a branch offeature1
? Or should I createfeature2
as a branch ofmaster
, and then pull in the items I need fromfeature1
?
两个选项:
1.如果您认为 feature1
会在 feature2
您想从 feature1
分支,这是通常采用的方法。
2。如果您认为 feature2
将在没有完整 feature1
您想从 master
分支,并添加您需要的提交。您也可以通过复制它来获取代码,但这不是 nice。
还有更好的选择吗?
在某些情况下可能无法实现,但我会将您需要的内容与 feature1
隔离开来,甚至可能合并到 master
。将其视为 feature1
和 feature2
之间的新基数。
例如feature1
添加方法到sdk
的图像同时使用它。在 feature2
中,您需要 sdk
方法可用。在这种情况下,您将隔离 sdk
更改,然后从那里创建分支,而不必复制代码或让一个分支完全依赖另一个分支。
总之,变化越小越好: - 创建小的(但有用的)功能分支 - 尽快打开拉取请求以进行持续审查 - 经常寻求反馈并在准备好时合并
其他人可能有不同的看法,但作为 SCM 中的任何东西,这都有点味道。