- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
每当我尝试克隆大型存储库时,都会发生以下情况:
$ git clone https://github.com/yarnpkg/berry.git
Cloning into 'berry'...
remote: Enumerating objects: 60762, done.
remote: Counting objects: 100% (1155/1155), done.
remote: Compressing objects: 100% (588/588), done.
Receiving objects: 5% (3454/60762), 13.86 MiB | 4.60 MiB/ (etc etc)
fatal: fetch-pack: invalid index-pack output
我没有安装防病毒软件,也没有使用 VPN。我尝试连接到另一个网络,但没有解决问题,所以一定是大苏尔有什么问题导致了这个问题。我不知道还能尝试什么。
macOS 11.4、APFS+ 文件系统、git 2.31.1
我已经尝试过更改压缩设置,弄乱包大小设置,this post也没有帮助。我发布此内容是因为我已经尝试了迄今为止在互联网上看到的所有其他方法,但没有任何效果。
最佳答案
这应该是一条评论(因为它不是答案),但我需要一些格式和这里的很多空间。简而言之,您需要找出原因 git index-pack
行为不端或失败。 (通过智能协议(protocol)获取通常会检索所谓的精简包,git fetch
需要使用git index-pack --fix-thin
来“增肥”。)
如果 git index-pack
的输出,则会发生“无效的索引包输出”错误不匹配什么git fetch-pack
期望。 Here's the code involved :
char *index_pack_lockfile(int ip_out, int *is_well_formed)
{
char packname[GIT_MAX_HEXSZ + 6];
const int len = the_hash_algo->hexsz + 6;
/*
* The first thing we expect from index-pack's output
* is "pack\t%40s\n" or "keep\t%40s\n" (46 bytes) where
* %40s is the newly created pack SHA1 name. In the "keep"
* case, we need it to remove the corresponding .keep file
* later on. If we don't get that then tough luck with it.
*/
if (read_in_full(ip_out, packname, len) == len && packname[len-1] == '\n') {
const char *name;
if (is_well_formed)
*is_well_formed = 1;
packname[len-1] = 0;
if (skip_prefix(packname, "keep\t", &name))
return xstrfmt("%s/pack/pack-%s.keep",
get_object_directory(), name);
return NULL;
}
if (is_well_formed)
*is_well_formed = 0;
return NULL;
}
这是从 fetch-pack.c
运行的的 get_pack
function ,运行 git index-pack
基于很多变量的参数。如果您运行 git clone
与环境变量GIT_TRACE
设置为1,可以观察Git运行git index-pack
。调用index_pack_lockfile
仅当 do_keep
时才会发生这种情况设置,基于args->keep_pack
最初,但如果包头的 hdr_entries
则可以设置值等于或超过unpack_limit
(参见第 859 行附近)。
您可以控制unpack_limit
值使用 fetch.unpackLimit
和/或 transfer.unpackLimit
。默认值是 100。您也许可以使用这些来解决索引包的一些问题,但索引包不应该以任何方式失败。注意,如果你想强制git fetch
使用git unpack-objects
相反,您还必须禁用对象检查 ( fsck_objects
)。
运行 git index-pack
可能会很有趣也直接在 git fetch
检索到的数据上。 (考虑安装 shell 脚本来代替正常的 git index-pack
,其中脚本打印其参数,然后在其自己的进程组上使用 kill -STOP
,以便您可以检查临时文件。)
关于git - 自安装 Big Sur 以来,无法再通过 HTTPS git 克隆大型存储库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67778629/
我有本地更改和远程更改。 有人告诉我必须先推,再 pull 。这背后有什么原因吗? 最佳答案 那个人错了:正确的模型是pull-before-you-push,而不是相反。 当您pull时,git 将
我正在使用最新版本的 Flat UI Pro 1.3.2 ( http://designmodo.com/flat/ ),jQuery 插件 flatui-radiocheck v0.1.0 和 iO
我是一名优秀的程序员,十分优秀!