我想获取指定远程引用文件的路径。
虽然在某些情况下文件名很明显,但是
.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个选项中的任何一个吗?
答案 0 :(得分:0)
我的方法是错误的,因为它假设所有引用都存在为单个文件,但正如torek提到的那样,refs的一个子集也可以列在.git / packed-refs中。
我所做的是使用git rev-parse origin/master
来获取远程分支哈希,而是使用它。