如何在不提交的情况下使用TortoiseGit挑选另一个分支的提交?

4
我可以使用bash挑选一个提交。
git cherry-pick -n <HASH>

但是是否有任何方法可以使用TortoiseGit来实现这一点?

有关此问题,请参阅 https://gitlab.com/tortoisegit/tortoisegit/-/issues/3268。我希望团队能够实现这个。 - Alireza Fattahi
2个回答

9

选择您要挑选提交的分支,然后:

  • 打开日志对话框
  • 滚动到提交的位置(可能需要在左下角选择“所有分支”或使用左上角的蓝色分支名称选择源分支并过滤提交哈希),
  • 在提交上打开上下文菜单,并
  • 选择“挑选此提交……”。

现在您基本上有两个选项,因为TortoiseGit中没有直接提供-n选项:

1)将挑选类型从“Pick”更改为“Edit”,开始挑选,然后选中“编辑提交”复选框,保持提交对话框打开,进行更改,然后提交并完成挑选。

2)完成挑选,然后:

  • 转到您的HEAD提交,
  • 选择刚挑选提交的父提交,
  • 在上下文菜单上选择“重置”,并
  • 选择mixed。

参见https://tortoisegit.org/docs/tortoisegit/tgit-dug-cherrypick.html


非常感谢您的快速回复。这真的是一个很好的技巧,特别是提交后重置。 :) - nirupam

5
假设您想从dev选择Commit X并将其应用到master
  1. 在代码库中右键单击,选择TortoiseGit -> Switch/Checkout -> 选中master并点击OK。
  2. 在代码库中右键单击,选择TortoiseGit -> Browse references -> 在dev上右键单击 -> 显示日志。
  3. 在要cherry-pick的提交上右键单击,选择Cherry Pick this commit -> Continue。
  4. 由于cherry-pick菜单不支持-n选项,因此我们可以进行混合重置以返回到先前的提交并模拟-n。TortoiseGit -> Browse references -> 在master上右键单击 -> 显示日志 -> 在先前提交上右键单击 -> 重置"master"到这个...... -> 点击OK。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接