我有以下情况:
A - B - C - ... DEVELOP
\
Z - X - ... FEATURE
我已经创建了FEATURE分支来实现我们项目中的一些功能。在我做了一些工作后,我在代码中发现了一个错误,应该先修复。在修复错误之前,我无法完成该功能。该错误仅与该功能无关,因此应在DEVELOP分支中修复。
问题是,DEVELOP和FEATURE分支是公开的。
我很困惑,不知道该怎么做。但是必须有一个明确的解决方案吗?
答案 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。您仍然必须迟早解决任何冲突,无论修补程序问题如何都是如此。