Git - 推动一个大型项目的远程分支非常慢

her*_*son 14 git

我们只是转向我的工作.我们有一个相当大的项目,在版本控制下有一些相当大的资源(~500MB).

今天我们尝试将分支机构推送到远程服务器,并且惊讶于git似乎试图上传整个项目.我本来希望git只发送4-5个有变化的文本文件的增量(就像普通推送到master一样).这不是远程分支的工作原理吗?我们用过git push origin some_branch_name,在这种情况下有更好的命令吗?我们不应该在git中存储大量资源吗?如果没有,人们通常如何处理这种情况?有没有更好的方法让一个开发人员与另一个开发人员分享正在进行的工作,而无需将更改提交给主分支?就目前而言,我们正在寻找大约15分钟来推动一个远程分支,这实际上是行不通的.我们做错了什么?

Tre*_*ris 2

你能更新你的帖子一些事情吗?

为了更好地了解您的项目,请发布以下前 10 多个条目:

git log --decorate=short --oneline --graph --all
Run Code Online (Sandbox Code Playgroud)

如果大型资源是二进制文件,那么不应该将它们存储在 git 中。如果这些二进制资源被更新,那么 git 必须在内部制作它们的完整副本(压缩算法不喜欢这样做),并将它们发送到服务器。至于怎么处理,那就要看具体情况了。你需要详细说明。

听起来好像有几个开发人员在同一个遥控器上工作。它是否正确?如果是这样,任何开发人员都不应该直接承诺master(恕我直言,无论如何都不应该发生)。每个开发人员都可以拥有自己的命名分支。例如,开发人员 John 可以在john/<branch_name>. 这将有助于保持工作流程的整洁。

此外,git 不适用于增量。每次更改时,它都会完整存储文件。这可能看起来效率低下,但所使用的压缩可以将大小降至最小。它有助于更​​快地结帐和扫描日志历史记录。阅读《Git 基础知识》的第一部分以进行可视化。

  • 这并不能解释为什么 git 在只有少数文件发生变化的情况下推送整个存储库(或者感觉像是这样)。事实上,有很多二进制文件不应该使推送(不会改变任何)变慢 (5认同)