0

我有以下情况:

A - B - C - ... DEVELOP
     \
      Z - X - ... FEATURE

我创建了 FEATURE 分支来实现我们项目中的一些功能。在我在那里做了一些工作之后,我在代码中发现了一个错误,应该先修复它。在修复错误之前,我无法完成该功能。该错误不仅与功能相关,因此应在 DEVELOP 分支中修复。

问题是,DEVELOP 和 FEATURE 分支是公开的。

我很困惑,不知道该怎么办。但是必须有一个明确的解决方案吗?

4

2 回答 2

2

当您说分支机构是公开的时,您的意思是什么?问题是什么?

好吧,如果我理解正确的话,这种情况下的解决方案是从开发中打开一个新分支:

git checkout -b hotfix develop

在 hotfix 分支中进行更正并将 hotfix 分支合并到两个分支中:feature 和 develop。

于 2013-05-17T17:03:22.990 回答
1

您是否关心 FEATURE 从 DEVELOP 分支后的提交是否从修补程序进入 FEATURE?

您有以下选择:

起初

A - B - C - ... DEVELOP
 \
  Z - X - ... FEATURE

1. 独立的修补程序并合并到两者:只有修补程序 H,而不是提交 B 或 C,被合并到 FEATURE。

A - B - C - D... DEVELOP
|\         /
| H ------      HOTFIX
 \        \
  Z - X -  Y... FEATURE

2. 修复 DEVELOP,然后通过合并将 FEATURE 更新为修补程序。这意味着提交 B、C 和 H 被合并到 FEATURE 中。如果您无法与他们协调更改,这对于使用/基于 FEATURE 的其他开发人员来说可能是一个问题。

A - B - C - H... DEVELOP
 \           \
  Z - X ------Y... FEATURE

3. 修复 DEVELOP,然后将 FEATURE 重新设置为修补程序或稍后在 DEVELOP 上提交- 更改 B、C 和 H 被合并到 FEATURE 中。仅当您对 rebase 感到满意并且可以与其他开发人员安全地协调 rebase 时才这样做。如果当您说 FEATURE 是公开的时,您的意思是完全开放的,世界上任何人都可能正在开发 FEATURE,那么这不是您的选择。

A - B - C - H... DEVELOP
             \
              Z - X -... FEATURE

在所有情况下,Git 都会将 FEATURE 合并回 DEVELOP 中。您迟早仍必须解决任何冲突,无论修补程序问题如何,都是如此。

于 2013-05-17T18:32:19.843 回答