`git checkout -`如何在低级别上运行

时间:2017-11-04 20:49:41

标签: git git-plumbing

如何使用Git管道命令或状态文件获取以前的分支/提交?

编辑:问题是 - 如何在不执行实际结账的情况下获取此信息(上一个分支或提交)?这是在Git之上工作的工具所必需的,而不是常规的Git方案。

1 个答案:

答案 0 :(得分:1)

看看code

if (!strcmp(arg, "-"))
    arg = "@{-1}";

revisions doc on @{-n}

中记录了访问先前检出的分支的方法

现在,要解决@{-n}后面的分支名称,解决方案为git check-ref-format --branch

  

使用--branch选项,它会扩展“之前的分支语法”@{-n}。例如,@{-1}是一种引用您所在的最后一个分支的方法。 Porcelains应该使用此选项在任何需要分支名称的地方接受此语法,因此它们可以像键入分支名称一样。

$ git check-ref-format --branch @{-1}
my_branch
$ git check-ref-format --branch @{-2}
master

还有git rev-parse --symbolic-full-name解决方案:

$ git rev-parse --symbolic-full-name @{-1}
refs/heads/my_branch
$ git rev-parse --symbolic-full-name @{-2}
refs/heads/master