git - 当 develop 分支与 master 有很大不同时管理修补程序?

标签 git git-flow

我正在使用“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

现在,提交出现在 masterdevel 中。要解决这个问题,请输入

git checkout devel
git rebase master

并且提交将从 devel 中消失,因为它已经存在于 master 中。

关于git - 当 develop 分支与 master 有很大不同时管理修补程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7175869/

相关文章:

PHP根据.gitignore过滤文件和路径

git init --bare on git 1.5.4.3

git - 奇怪的 git 错误 : failed to run prune

git - 开发一个功能发现其他功能有bug怎么办?

git - 应该在哪个分支中标记测试版?

Git "does not appear to be a git repository"ip 和端口而不是域?

git - 将 svn 转储导出到 git 或 github

git - 处理用于测试和生产的 git 分支

ios - 如何使用 gitflow 发布一个版本

git - 撤消将功能 merge 到开发中的 git flow 功能完成