首页 > 解决方案 > .git/refs/heads 没有得到所有分支

问题描述

当我运行 .git/refs/heads 时,它只显示我在本地签出的分支。如何为我的所有分支创建参考/标题?或者我怎样才能为所有的 origin/ 创建 refs/heads?

我正在使用 Azure DevOps。我正在使用他们的预定义变量,这些变量只会返回拉取请求的源/目标的分支引用。但是,这些变量将返回,例如,refs/heads/feature。因此,在获得参考文献后,我在我的一项 devops 任务中使用 git rev-list $branch-ref。但它给了我模棱两可的论点'refs/heads/feature':未知修订错误。我认为这种情况正在发生,因为正在发生的 git checkout 没有这些引用。但是,当我使用原点/功能时,它工作正常。所以我试图找到一种方法将所有 origin/ 变成 refs/heads/

标签: gitgithubazure-devopsazure-repos

解决方案


.git/refs/heads不会包含您所有本地分支机构的列表。有些会在.git/packed-refs.

要查看所有本地分支机构,请使用git branch.

如何为我的所有分支创建参考/标题?或者我怎样才能为所有的 origin/ 创建 refs/heads?

除非您打算进行修改,否则不应创建本地分支。您可以改为参考远程跟踪分支origin/foo指上的foo分支origin

如果你真的想,写一个小脚本来git branch -r获取所有远程分支的列表。这是 Ruby 中的一个示例。

remotes = `git branch -r`.split("\n").map(&:strip)
locals = remotes.map { |r| r.sub(%r{^.?+/}, ''); }
remotes.zip(locals) { |r,l| system("git branch #{l} #{r}") }

推荐阅读