gpt4 book ai didi

git - 为什么 git push --force transfer blobs 已经包含在远程

转载 作者:太空狗 更新时间:2023-10-29 14:46:07 24 4
gpt4 key购买 nike

我有一个与 Git 内部结构相关的问题。

我有一个远程 git 仓库,每次推送 master 都会触发一次构建。为了尽量减少从我的本地存储库到远程存储库的数据传输,我尝试使用以下策略:

  1. 远程仓库永远不会被克隆(所以没有文件从远程下载到本地)
  2. 取而代之的是,一个新的本地存储库被初始化并填充了我想要传输的所有本地文件
  3. 每次我想触发构建时,都会执行 git push --force

强制推送有效,但似乎所有本地文件都被传输到远程仓库,还有具有大尺寸的不可变文件已经包含在远程 blob 存储(即在对象文件夹中,由哈希索引)。

这是 Git 的预期行为吗?为什么传输已经在远程 blob 存储中的文件?我希望 Git 智能协议(protocol)能够避免重新传输远程 blob 存储中已经存在的内容...

最佳答案

Git 通过查看图中提交的可达性来避免发送服务器已有的对象。 Git 不会遍历整个历史,查看每棵树和每个 Blob 并询问远程是否有。这将是一场代价高昂的谈判。

如果您每次都推送新的无父项提交,那么您将绕过任何可以优化传输的系统。

关于git - 为什么 git push --force transfer blobs 已经包含在远程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26160857/

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