我正在使用“Git Flow”分支模型,有一个主分支和一个开发分支。我正在开发一个主要的新版本,所以我的 develop 分支与我的 master 分支截然不同。每当我需要在 master 分支上进行修补程序并将其 merge 回 develop 时,这就会产生问题。几乎总是有冲突,这正在成为一种真正的痛苦。
管理此问题的最佳方法是什么?对我来说,手动对开发进行小的修补程序更改,然后在我准备好时将所有内容 merge 到 master 中,而不将 master merge 回 develop 会更容易。这可能吗?
最佳答案
从一个分支到另一个分支获取一些提交的最简单方法是cherry-picking .
假设您在 master
中的修复具有提交哈希 HASH
并且您希望将该修补程序带入您的 devel
分支,请执行 git checkout devel
后跟 git cherry-pick HASH
。就是这样。
如果您想将 所有 更改从 master
转移到 devel
中,您可以使用
git checkout devel
git rebase master
如果您有相反的情况(您在开发期间在 devel
分支中进行了修补程序,并希望在 devel
之前将该修补程序带入 master
> 完全 merge 到 master
中),工作流程非常相似。假设修补程序具有哈希 HOTFIX_HASH
,请执行以下操作:
git checkout master
git cherry-pick HOTFIX_HASH
现在,提交出现在 master
和 devel
中。要解决这个问题,请输入
git checkout devel
git rebase master
并且提交将从 devel
中消失,因为它已经存在于 master
中。
关于git - 当 develop 分支与 master 有很大不同时管理修补程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7175869/