【发布时间】:2018-11-12 22:31:00
【问题描述】:
我遇到了与 - git push is very slow for a branch 相同的问题 但那里的答案不适合我的情况。
我正在与一个拥有非常大的 repo 的公司 GitHub 合作。我的流程如下:
1) 从主服务器拉取
2) 创建新分支
3) 提交
4) 推送分支以创建拉取请求。
在 (4) 上推送分支时,它想要写入超过 1,000,000 个对象,而我所做的提交仅更改 1 行,这需要大约 3gb。
如果我转到 GitHub UI 并从 UI 创建一个与 (2) 中同名的分支,然后推送到该分支,推送时间不到一秒。不用说master和我的分支之间的变化很小(没有添加或删除大文件)。
如何让 Git 只推送相关数据而不推送整个 repo?
Windows 版本 2.17.0 上的 Git
【问题讨论】:
-
如果你运行
git show --name-status <your branch>,有多少个文件? -
什么时候运行这个?
-
第三步之后,提交
-
嗯...它还取决于您的 tty 输出:twitter.com/33asr/status/1097165302125789184
-
对于大型 repo,您现在(2019 年第一季度)拥有 Git For Windows 2.21 的配置
pack.sparse,它可以帮助提高推送的性能。见my answer below。