为什么git推送大文件的速度太慢?有没有什么方法可以优化它或忽略它



我在project/public/deploy/下有很多大文件。剩下的都是我的源代码。当我昨天推送的时候,今天还没有完成,我的网络速度非常慢。我理解它,因为我有最大的文件,而且被推送,这是不可能的。

我如何告诉git-push永远不要推送目录project/public/deploy/?

project/
./application/<all source codes>
./framework/<all source codes>
./public/deploy/download/archlinux.fedora.centos.freebsd.isos.tar.gz
./public/deploy/tutorial/oracle.bigtable.mysql.db2.why.mp4
./public/deploy/tutorial/c.cpp.java.d.vala.tutorial.episode1.mp4
./public/deploy/tutorial/c.cpp.java.d.vala.tutorial.episode2.mp4
./public/deploy/tutorial/c.cpp.java.d.vala.tutorial.episode3.mp4
./public/deploy/tutorial/hacking.android.linux.mp4

有没有办法在direcotry中放置一个推送标志或一个小的gitignore文件,让它可以忽略所有内容?(在trakking之前和跟踪之后,如果有忽略建议,它将永远/永远忽略该目录,除非我删除它?)

大型二进制文件不应存在于项目中。正如你所注意到的,Git不是适合这份工作的工具。应在项目的.gitignore中忽略这些文件。添加类似public/deploy/tutorial/*.mp4的行(如果需要,可以不那么具体)。

现在,由于文件已经在您的存储库中,您需要修改存储库的历史记录。Github有一个关于这个主题的教程,可以归结为:

git filter-branch --index-filter 
  'git rm --cached --ignore-unmatch public/deploy/tutorial/*.mp4' 
  --prune-empty -- --all

现在存储库已经清理完毕,您可以推送它。它应该像往常一样快速完成。

您可能不希望视频文件后面跟着Git。即使它们正在不断开发中,并且不时发生更改,您也可以对视频编辑器的项目文件或类似内容进行索引。

然而,我建议你把你的大项目分解成更小的项目。例如,我猜application/代码依赖于framework/代码,但只要API没有被破坏,这些文件夹中的更改是独立的。那么为什么不把它们放到2个Git项目中呢?

对于较大的视频文件,我建议将它们放在中心文件共享中并进行同步。如果每天都有几个人更改,您可能会找到只共享项目文件的解决方案。请再问一个问题以了解详细信息。

我以前从未使用过它,但它非常方便:Git支持子项目。这意味着你可以在你的树中集成另一个Git存储库,Git会获取它的提交,但代码库和历史是独立的,不会变得那么大。也许这是从application/连接到framework/的正确方法。

相关内容

  • 没有找到相关文章

最新更新