为什么git ls-remote不列出所有远程引用?

MJD

我有一个远程回购(origin),其refs目录包含,除了通常的headstagsremotes子目录,也keep-aroundmerge-requests这些是由Gitlab管理的特殊内部裁判集

当我git ls-remote用来询问这个仓库时,该命令列出了merge-requests引用而不是keep-around请求:

$ git ls-remote
5ef8f113ba35360de0dfc015601bb832bacb5505        HEAD
... lots of refs/heads/...
... lots of refs/merge-requests/...
... lots of refs/tags...

同样,我可以获取merge-requests引用,例如

$ git fetch origin refs/merge-requests/999/head
From git.company.com:Company/company
 * branch                    refs/merge-requests/999/head -> FETCH_HEAD

但是当我请求keep-around参考时,远程回购声称它不存在,即使我知道它也存在:

$ git fetch origin  refs/keep-around/291ad6a6bebf067377700d430ac130d758ed52e9
fatal: couldn't find remote ref refs/keep-around/291ad6a6bebf067377700d430ac130d758ed52e9
fatal: The remote end hung up unexpectedly

我没有在远程仓库中看到任何config与此相关的东西。是什么导致了不同的行为?


附录:Meredith Howard认为这可能是Gitlab的功能;有一个特殊的Gitlab配置,可以告诉它专门隐藏refs/keep-around看到有类似问题的人的支持请求


附录:有人建议这是Git的副本,通过hash获取特定的提交我不是试图通过哈希来获取特定的提交。我想知道为什么远程回购从其清单中删除某些引用。

星期二

每个Git网站托管站点都可以通过该站点使用的任何配置机制(很可能是--system配置文件)来隐藏其喜欢的任何引用。Git本身对此具有通用机制:transfer.hideRefs请参阅git config文档的详细信息。如果您运行自己的服务器,则可以通过这种方式进行设置。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

列出git-ls-remote时,为什么标记名称后面有“ ^ {}”?

为什么 git ls-remote 和 git ls-files 会因某些相对路径而失败?

为什么“ / bin / sh ls”不执行ls?

当列出所有已安装的Debian软件包时,为什么不包含“ ls”作为软件包?

为什么 ls -R 不递归列出模式的文件?

为什么“ ls”不列出以“。”开头的文件。在Linux中

为什么这个来自git ls-remote的正则表达式无法正常工作?

为什么ls命令没有列出巨大的文件大小?

ls /`有什么作用?

ls -A 有什么作用?

列出远程分支-git branch -a vs git ls-remote --heads origin

为什么`watch`使`ls / tmp`列出$ HOME的内容?

(为什么)使用ls -A列出隐藏文件不好?

为什么ls -d也列出文件,在哪里记录?

为什么C stdout不返回“ ls”命令内容?

为什么*不*解析`ls`(以及怎么做)?

为什么“ ls * [[[:digit:] *]”有效,而“ ls * [[:digit:] *] _ [[:digit:] *]”无效?

ls 显示“没有这样的文件”,但为什么呢?

为什么echo`ls -l`没有换行符?

为什么`ls | xargs wc -l`有格式吗?

为什么“ ls *”比“ ls”花费更长的时间?

为什么ls -i比ls慢?

“ ls”和“ ls -p”有什么区别?

为什么`ls -lF` 列出目录中没有前缀“~$”的文件?

为什么`ls`每行列出多个文件,而`ls pipe / redirect`每行仅列出1个文件?

如何完全沉默git ls-remote?

什么是ls -F(ls --classify)

git ls-remote和git ls-remote起源之间的区别

git ls-files 是否应该列出 LFS 跟踪的文件(git lfs ls-files)