Git:将提交 merge 到不同的分支

标签 git github merge commit git-merge

所以我有 3 个分支;

  • develop - 我的持续开发分支
  • version_1 - 发布分支
  • version_2 - 发布分支

我必须对 version_2 进行修补程序才能重新发布该版本,这是 2 个文件中的 2 行更改,非常小。

我想将该修复应用于 version_1develop

所以我;

git checkout version_1
git merge <commit checksum>

我认为提交仅包含更改,因此只会应用这些更改。但 merge 会发生冲突,因为它试图更新两个分支之间的所有更改。

有没有办法只 merge/移动/应用小提交中的更改到其他分支?

我可以在这些分支上手动重新实现修补程序,但这似乎是一项艰巨的工作,特别是因为可能需要重新应用更多修补程序并将其推广到所有其他分支。

Cheers, Will

最佳答案

仅 merge 一个或几个提交意味着使用 git cherry-pick

首先取消刚刚执行的 merge :请参阅“Undo a Git merge? ”。
然后:

git checkout version_1
git cherry-pick <commit checksum>

这可以应用于多个提交或一系列提交:请参阅“How to cherry pick a range of commits and merge into another branch ”。

关于Git:将提交 merge 到不同的分支,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23909514/

相关文章:

每次我推送时,Git 都会询问用户名

javascript - 如何将项目的最新版本推送到存储库?

merge 上游时 Git commit 被压缩,我如何更新我的本地 repo

git - 在远程服务器上创建本地 git 存储库的副本

git - 臭名昭著的 Git 错误 : remote rejected (failed to lock)

shell - 基于linux中的两个键合并两个长度不等的文件

algorithm - 归并排序的 K 路归并操作

c++ - 使用 vector 的合并排序 C++

git - 将本地主提交推送到远程分支

Git - 我们可以恢复已删除的提交吗?