如何在没有历史记录的系统上从分支 A 挑选到分支 B?

How to cherry pick from branch A to branch B on a system without history?

假设我有一个没有 git 历史记录的新系统,并且我对分支 A 进行了新的检查。分支 A 已经有一个我昨天从其他系统执行的提交 C1。 现在我想在分支 B 中挑选这个提交 C1。 问题:

  1. 如果我签出分支 A 并转到提交 C1(在 Git 视图中的历史记录中)并单击 'cherry pick',它说你想在分支 A 中挑选吗?所以,这里不讨论分支B。
  2. 如果我签出分支 B,它根本不会显示提交 C1。

现在,我如何将分支 A 的提交 C1 挑选到分支 B 中? 我在 eclipse 中使用 Gerrit、GitBlit 和 EGit。

我对您使用的 GUI 特别不熟悉,但是您所描述的概念在 git 中是完全可以接受的。

要从分支 A 中挑选一个提交到分支 B,请使用以下命令行命令:

git checkout branchB
git cherry-pick hashOfC1

在您使用的 GUI 中应该有一种 'view all branches' 模式,这样您就可以在检出分支 B 的同时看到提交 C1,但如果没有,上述命令很容易执行。

Qualatar 评论有点过时,这里是如何在 'Version: Luna SR2 (4.4.2)' 中显示 'Show History' 中的所有分支,以便您可以 'right click > Cherry Pick'.

转到 "Team Synchronizing",右键单击项目以显示菜单。 select 显示在 -> 历史记录中。 这将显示带有变更集的“历史记录”选项卡。

当您单击带有 2 个向下箭头的图标时,您将看到所有更改,甚至包括那些不是来自您的分支的更改。 右键单击您想要挑选的变更集,然后 select Cherry Pick.. 选项如图所示

步骤:从其他分店挑选

切换当前分支

  1. 点击/勾选/显示所有分支
  2. Select 并右键单击 -> cherry pick the commit

  1. 继续直到完成。
  2. 右键单击项目并在当前分支上推送提交。

要 Cherry pick 到 Eclipse eGit 中的另一个分支,请按照以下步骤操作:

  1. 签出一个分支,您将在其中进行 cherry pick 提交。
  2. 打开历史记录视图。
  3. 在工具栏中单击“更改要显示的提交”以显示与配置的引用过滤器匹配的所有分支。
  4. Select 提交并打开上下文菜单并按 Cherry pick。