如何在Git中获取指定远程分支的ref路径

时间:2015-10-01 23:29:01

标签: git

我想获取指定远程引用文件的路径。

  

虽然在某些情况下文件名很明显,但是   .git/refs/remotes/origin/master,在其他情况下并不明显   比如HEAD指向掌握的.git/refs/remotes/origin/HEAD

我正在编写一个需要触摸每个远程文件的工具,但在第二种情况下它从上面失败。

为了解决这个问题,我想到了这两种可能性:

1 - 运行git命令以返回特定远程分支的ref文件名。相当于:

的东西
$ git ---give-me-the-ref-of origin/master
refs/remotes/origin/HEAD

2 - 运行git命令以保证被跟踪的远程分支具有ref文件(尽管HEAD)。相当于:

的东西
$ git checkout --track ---use-explicit-ref-besides-HEAD master
  

您知道如何实现上述2个选项中的任何一个吗?

1 个答案:

答案 0 :(得分:0)

我的方法是错误的,因为它假设所有引用都存在为单个文件,但正如torek提到的那样,refs的一个子集也可以列在.git / packed-refs中。

我所做的是使用git rev-parse origin/master来获取远程分支哈希,而是使用它。