Linux 为什么git推送大文件太慢?那么有没有办法优化它或者忽略它呢?

Linux 为什么git推送大文件太慢?那么有没有办法优化它或者忽略它呢?,linux,git,netbeans,github,Linux,Git,Netbeans,Github,我在project/public/deploy/下有许多大文件。其余的都是我的源代码。当我昨天推的时候,今天它还没有完成,我的网络对此非常慢。我理解这一点,因为我有最大的文件并且被推送,这是不可能的 我如何告诉git push永远不要推目录project/public/deploy/ project/ ./application/<all source codes> ./framework/<all source codes> ./public/deploy/downlo

我在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
项目/
/申请/
/框架/
./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.eposode1.mp4
./public/deploy/tutorial/c.cpp.java.d.vala.tutorial.eposode2.mp4
./public/deploy/tutorial/c.cpp.java.d.vala.tutorial.eposode3.mp4
./public/deploy/tutorial/hacking.android.linux.mp4

有没有办法在direcotry中放置一个push标志或一个小小的gitinore文件,这样它就可以忽略所有内容?(在跟踪之前和跟踪之后,如果有忽略建议,它将始终/永远忽略该目录,除非我将其删除?

您可能不希望视频文件后面跟着Git。即使它们处于不断开发中,并且时不时地被更改,您也可以只为视频编辑器的项目文件或类似文件编制索引

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

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


我以前从未使用过它,但它非常方便:Git支持子项目。这意味着您可以在树中集成另一个Git存储库,Git将获取其提交,但代码库和历史记录是独立的,不会太大。对于从
application/
framework/
的连接,这可能是正确的方法,大型二进制文件不应该存在于您的项目中。正如您所注意到的,Git并不是适合这项工作的工具。应该在项目的
.gitignore
中忽略这些文件。添加一行,如
public/deploy/tutorial/*.mp4
(如果需要,可以不太具体)

现在,由于文件已经在存储库中,您需要修改存储库的历史记录。Github在这个问题上有一个很好的解决方案,可以归结为:

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

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

你有没有试过一个
.gitignore
文件,其中有一个通配符
*
,在一行中?@basilestrynkevitch:它不起作用。从前(第0天),我做了这个$touch项目/public/deploy/download/archlinux.fedora.centos.freebsd.isos.tar.gz;在我做推送之前很久,推送创建了一个空文件及其跟踪。现在如果我把.git放进去,它似乎不起作用,因为它在轨道上?很好。你能为他提供一些解决方案吗?之后如何共享或同步视频文件?