git - git clone/checkout 一个没有历史记录的 SHA
问题描述
部分是作为一种练习,部分是因为它几乎可以工作,我觉得有必要完成它......
我可以git clone $repo --branch $ref --single-branch --depth 1
,而且它非常适合标签和头像。
我可以git pull --depth 1 $repo $sha
而且效果很好,只要 $sha 是一个完整的值。但是:如果缩写,即使是 1 个字符,也会失败。
有没有办法做到这一点?我正在尝试自动化 git 同步并且非常大的存储库是一个问题。使用深度 1 有很大帮助,但我不知道如何使用缩写的 SHA。
解决方案
我刚刚尝试使用该git -c core.abbrev=40
选项,如“让所有命令的 git 输出完整(未缩写)哈希? ”中所示
git -c core.abbrev=40 --branch 05f7b9c710 --single-branch --depth 1 https://github.com/auser/arepo test
但这仍然失败:
Cloning into '`test`'...
warning: Could not find remote branch 05f7b9c710 to clone.
fatal: Remote branch 05f7b9c710 not found in upstream origin
如“git clone --single-branch
不适用于 sha / commit ids? ”
这是故意的,允许对可以从 repos 获取的内容进行一些控制,特别是在单个对象 db 服务于多个 repos 的设置中。
顺便说一下,不是uploadpack.allowAnySHA1InWant
在GitHub 端设置的。
这意味着即使我使用完整的SHA1 参考,它仍然会失败。
在您的情况下,如果您可以控制 Git 远程存储库托管服务器,则可以将设置设置为允许此类克隆。
推荐阅读
- firebase - how to handle firebase auth exceptions in flutter?
- reactjs - use create-react-app and don't have any folder
- quantum-computing - How to pass one Q# operation to another Q# operation from C# or F#
- php - 管理雇主的 SQL 请求或 php 解决方案
- seo - hreflang 中国台湾 zh-Hans zh-Hant 或 zh-cn zh-tw
- html - flex + min-height = 0 高度的孙子
- java - Hangman : 找到单词后退出程序
- python - Why does the code with the concurrent.futures.thread skip widget operations?
- javascript - Why does console.log exclude my zero from logging?
- javascript - JavaScript: Listening for browser tab change