GIT分支问题

时间:2013-05-17 16:39:24

标签: git branch

我有以下情况:

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

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

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

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

2 个答案:

答案 0 :(得分:2)

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

嗯,在这种情况下,如果我理解正确,那么解决方案是从开发中开辟一个新的分支:

git checkout -b hotfix develop

在修补程序分支中进行更正并合并两个分支中的修补程序分支:feature和develop。

答案 1 :(得分:1)

你是否关心在POWER的分支之后提交从修复程序进入FEATURE?

你有选择:

原来

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

<强> 1。隔离的修补程序并合并到两者:只有修补程序H,但不提交B或C,并入功能。

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

<强> 2。修复DEVELOP,然后通过merge更改更新到FE修复功能。这意味着提交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是公开的时,你的意思是开放性的,任何人都可以在世界范围内开发出来的功能,那么这对你来说不是一个选择。

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

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