gpt4 book ai didi

git - 如何检查远程 Git 存储库中是否存在修订(提交)

转载 作者:太空狗 更新时间:2023-10-29 14:22:42 26 4
gpt4 key购买 nike

我正在开发将其他应用程序从 git repo 部署到服务器的应用程序,并且有一个选项可供用户选择要部署的修订版本。

我的问题是验证给定 repo 中存在修订而不下载它

similar question他们建议使用 test $(git cat-file -t $sha) == commit 但它需要本地 repo。

是否可以通过 URL 检查远程仓库是否存在修订?

最佳答案

你的问题取决于你所说的revision(commit)

如果您的意思是“引用”(例如标签或分支),那么您可以使用 git-ls-remote无需下载即可检查存储库是否包含它。

如果您指的是“提交 ID”(例如 SHA),那么这取决于该提交是否是远程存储库中当前引用的头部。如果是这样,那么 'git ls-remote --heads --tags' 将显示当前头的 SHA,例如使用命令行:

$ git ls-remote --heads --tags origin
From git@git.company.com:proj/path
05f1351c4d2aef79e0f52ef32868f5f56e4bf264 refs/heads/dev
2e5df15c40441428c8c0a622bfd8c59d124fc9c7 refs/heads/master
05e1351f4d2aef79e0f522f33868f5f56e4bf264 refs/heads/prod
05e1351f4d2aef79e0f522f33868f5f56e4bf264 refs/heads/stage
05e1351f4d2aef79e0f522f33868f5f56e4bf264 refs/heads/test

但是,如果该 SHA 不在引用的头部(即是祖先),则您需要下载(根据需要 clone 和/或 fetch)。请参阅 running git-merge on a remote 中的讨论了解更多背景。

关于git - 如何检查远程 Git 存储库中是否存在修订(提交),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35156453/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com