我使用 Git 已经一年多了,现在我必须向我们组中的其他人解释它。这就是为什么我需要更多的背景知识。\n去年我浏览了 Git 书籍的大部分内容,最近我继续阅读第 10 章。在第10.6章中章我完全陷入困境:
\n\n\n\n\n让\xe2\x80\x99s 遵循 simplegit 库的 http-fetch 过程:
\n\nRun Code Online (Sandbox Code Playgroud)\n\n$ git clone http://server/simplegit-progit.git\n该命令所做的第一件事是下拉 info/refs 文件。\n 该文件是由 update-server-info 命令写入的,这就是为什么\n 您需要将其启用为接收后挂钩,以便HTTP\n 传输正常工作:
\n\nRun Code Online (Sandbox Code Playgroud)\n=> GET info/refs\nca82a6dff817ec66f44342007202690a93763949 refs/heads/master\n
我有一个小型测试仓库https://github.com/to_my/repo并且git clone运行良好。但
info/refs?我只找到了/.git/info/exclude之后clone...update-server-info命令?它是 git clone 的一部分吗?GET info/refs在 git bash 工作中获取该命令。抱歉,如果问题很愚蠢,但我只是不明白如何将文档中的这些部分放在一起。
\n我有一个超过 1 GB 的浅克隆 git 存储库。我对所需的文件/目录使用稀疏结帐。
如何将存储库克隆减少为稀疏的签出文件/目录?
最初,我可以通过在克隆时禁用检出来将克隆存储库限制为仅稀疏检出。然后在进行初始结帐之前设置稀疏结帐。这将存储库限制为仅约 200 MB。更易于管理。但是,在将来的某个时刻更新远程分支信息会导致其余文件和目录包含在存储库克隆中。将存储库克隆大小发送回超过 1 GB,我不知道如何仅删除稀疏的签出文件和目录。
简而言之,我想要的是一个浅且稀疏的存储库克隆。不仅仅是浅层回购克隆的稀疏签出。完整的存储库会浪费空间,并且某些任务的性能会受到影响。
希望有人能分享解决方案。谢谢。
我决定打开 Git 协议第 2 版(我想它更快,无噪音),所以我做了:
git config --global protocol.version 2
Run Code Online (Sandbox Code Playgroud)
但是当我尝试
git pull
Run Code Online (Sandbox Code Playgroud)
我收到一条错误消息:
git config --global protocol.version 2
Run Code Online (Sandbox Code Playgroud)
我的操作系统是 Ubuntu 18.04。我在 Ubuntu 16.04 上的朋友做了同样的事情,并且对他有用。我可能缺少一些依赖项吗?