Git 如何引用另一个分支上的最后一次提交

Git 如何引用另一个分支上的最后一次提交,git,Git,我有两个分支,brA和brB。我在胸罩上做的每一个改变都需要把樱桃选进brB。我想要的工作流完全从命令行运行,并且使用尽可能少的按键 在胸罩上投入工作。不要记住提交id,因为我不必记住。击键:“git commit-m”=13+我的提交消息 查看brB。击键:我的co别名为checkout,只有两个分支,因此“gitco-”=8 Cherry挑选从brA到brB的最新承诺。我的cp别名为cherry pick,但我不知道如何引用另一个分支上的最后一次提交。是的,我可以复制粘贴提交id或使用GU

我有两个分支,brA和brB。我在胸罩上做的每一个改变都需要把樱桃选进brB。我想要的工作流完全从命令行运行,并且使用尽可能少的按键

  • 在胸罩上投入工作。不要记住提交id,因为我不必记住。击键:“
    git commit-m
    ”=13+我的提交消息
  • 查看brB。击键:我的
    co
    别名为
    checkout
    ,只有两个分支,因此“
    gitco-
    ”=8
  • Cherry挑选从brA到brB的最新承诺。我的
    cp
    别名为
    cherry pick
    ,但我不知道如何引用另一个分支上的最后一次提交。是的,我可以复制粘贴提交id或使用GUI,但我是一个开发人员,没人有时间
其他分支机构的提交可以使用
@
符号引用,如下所示:

git cp brA@{0}
它们从上次提交开始向后计数,并且索引为零。我不知道如何处理与双亲的承诺,但现在,这不是我的问题。这是11个非可变字符,“git cp”和“@{0}。这给了我总共的击键次数:


13+8+11+提交消息+分支名称

git中的分支只不过是提交上的一个引用;每个提交在其父提交上都有一个引用,这就是git构建历史的方式

当您在分支上进行提交时,引用指向新的提交,该提交将上一次提交作为其父级。这实际上意味着分支始终指向“最新”的提交

很明显,您可以通过这种方式重置分支并“撤消”某些提交,但现在引用指向另一个提交,因此其他提交不再是该分支的一部分

这意味着您只需要使用引用来获取分支的“最新”提交,这将导致以下命令:

git cherry-pick brA

旁注:一个工作流,在这个工作流中,您需要从一个分支到另一个分支的每一次提交都进行
挑选
对我来说似乎有点不合适,可能有更好的方法来实现您想做的任何事情


编辑我必须纠正自己:当然git中的分支不是符号引用,只是普通引用;git中唯一类型的符号引用可以在HEAD中找到。HEAD通常指向分支,而不是像分支那样直接指向提交。

brA@{0}
每次都可以这样做,
@{number}
后缀语法指的是分支回流。在许多情况下,实际上对应于“到分支尖端的距离”,但不是全部(例如,在重新基址或重置之后)。诸如
master~4
之类的
~number
表单指的是“到分支尖端的距离”“,特别是沿着第一个父行。要直接命名分支提示,只需使用分支名称,完全不带后缀。(
@{0}
表示“最近的”,这就是分支提示现在所在的位置,这就是保证正确的原因。)我甚至没有尝试
cp brA
!我太担心在某种事实上的重新基址中拉过整个分支。现在回想起来,这是git,我应该尝试一下。小题大做。git中的“符号引用”是,但从概念上来说,你可以将它们都视为“符号指针”提交。@Cupcake你是对的。我稍后会编辑答案,谢谢你的提醒。在进一步回顾中,
rebase
正是我想要的…哦