从 hoftix 分支到 master 和 develop 分支的合并策略的差异
Difference in merge strategies from hoftix branches to master and develop branches
使用 git 流程注意到 hotfix
分支从 master
分支并合并回 master
和 develop
。
然而,将hotfix
合并到develop
可能会导致合并冲突,这就是为什么我的团队目前提倡将hotfix
合并到master
然后从 master
回来做 develop
.
但我认为从 hotfix
到 develop
会产生冲突的场景也会在 merge
到 develop
上产生冲突,所以这里没有真正的好处.
更糟糕的是,因为他们总是在 GitHub 拉取请求中解决冲突,如果从 master
到 develop
之间存在冲突,他们将在 master
上创建一个提交在合并到 develop
.
之前解决它
毕竟,这些不是问题吗?从 hotfix
合并到 master
和 develop
真的那么重要还是第二种方法同样好?
这两种方法在实践中大部分时间在功能上是相同的。
1 # last common commit
|\
| \
| \
| \
v \
2 3 # master follows left side commits, develop follows right side
|\ /|
| \ .|
| | |
|. | |
v/ | |
4 | | # 4 merged into master from feature branch, contains 3
| | |
| v |
| 5 | # hotfix commit 5
| /| |
v/ | |
6 | | # 6 fixes conflicts between 3 and 5
| \ |
| \v
| A # A also fixes conflicts between 3 and 5
\
\ .
\ |
\ |
\v
B # merge master with hotfix to develop
因此,您合并以在 A 或 B 中开发的可能性是 A 将包含提交 (1, 2, 3, 5),B 将包含 (1, 2, 3, 4, 5, 6). 4 或 6 中可能有任何出于某种原因在开发分支上不受欢迎的内容,但实际上我看不出那可能是什么。
假设commit 4来自develop上的一些变更(已经在develop上),那么commit 5和commit 4可能存在合并冲突。在这种特殊情况下,冲突必须在 6 和 A 中都得到解决,而合并到 B 中只能在 6 中解决这些冲突一次。两次解决冲突也有可能(略微)不同地解决它们,导致进一步以后合并冲突。
使用 git 流程注意到 hotfix
分支从 master
分支并合并回 master
和 develop
。
然而,将hotfix
合并到develop
可能会导致合并冲突,这就是为什么我的团队目前提倡将hotfix
合并到master
然后从 master
回来做 develop
.
但我认为从 hotfix
到 develop
会产生冲突的场景也会在 merge
到 develop
上产生冲突,所以这里没有真正的好处.
更糟糕的是,因为他们总是在 GitHub 拉取请求中解决冲突,如果从 master
到 develop
之间存在冲突,他们将在 master
上创建一个提交在合并到 develop
.
毕竟,这些不是问题吗?从 hotfix
合并到 master
和 develop
真的那么重要还是第二种方法同样好?
这两种方法在实践中大部分时间在功能上是相同的。
1 # last common commit
|\
| \
| \
| \
v \
2 3 # master follows left side commits, develop follows right side
|\ /|
| \ .|
| | |
|. | |
v/ | |
4 | | # 4 merged into master from feature branch, contains 3
| | |
| v |
| 5 | # hotfix commit 5
| /| |
v/ | |
6 | | # 6 fixes conflicts between 3 and 5
| \ |
| \v
| A # A also fixes conflicts between 3 and 5
\
\ .
\ |
\ |
\v
B # merge master with hotfix to develop
因此,您合并以在 A 或 B 中开发的可能性是 A 将包含提交 (1, 2, 3, 5),B 将包含 (1, 2, 3, 4, 5, 6). 4 或 6 中可能有任何出于某种原因在开发分支上不受欢迎的内容,但实际上我看不出那可能是什么。
假设commit 4来自develop上的一些变更(已经在develop上),那么commit 5和commit 4可能存在合并冲突。在这种特殊情况下,冲突必须在 6 和 A 中都得到解决,而合并到 B 中只能在 6 中解决这些冲突一次。两次解决冲突也有可能(略微)不同地解决它们,导致进一步以后合并冲突。