如何在不从 B 分支 git 移除新更改的情况下将更改从分支 A 推送到分支 B(无合并)

How to push changes from branch A to branch B without removing new changes from B branch git (no merge)

我和 git 一起工作很长时间了。现在面临的挑战有点令人困惑。我的问题是使用不同版本的应用程序管理存储库。

我正在开发一个应用程序,我必须在其中发布应用程序的几个模块,并且我将不得不继续进行后续模块的开发,而不必等待先前模块的测试问题。所以我为每个模块创建了不同的分支并处理它们,将旧分支留在该模块的更改完成的位置。没关系,但问题是当测试人员将在旧模块上提出问题时,我将不得不修复旧分支上的那些特定问题,这些修复也应该反映在新的工作分支和源代码的未来分支上。而且我将不得不给出一个包含旧分支修复的构建,直到旧分支任务目标没有来自新分支的新更改。

我正在使用源代码树 mac 应用程序来管理我的存储库。有什么办法可以完成这个任务。我现在正在做的是同时修改 2 个存储库的源代码以修复单个问题,我担心如果我必须对 3 个存储库执行此操作,那太可怕了,因为我也即将完成第二个模块。我希望一定有办法。

您需要使用 https://git-scm.com/docs/git-cherry-pick

来挑选提交

使用 cherry-pick。

branch_a : A - B - C <- tip
branch_b : D - E - F <- tip

要从 branch_b 到 branch_a 挑选提交 E,请执行:

git checkout branch_a
git cherry-pick E

你最终会得到:

branch_a : A - B - C - E' <- HEAD
branch_b : D - E - F <-tip

其中 E'E 相同,但在 C 之上。