linux – 为什么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

是否有任何方法可以放置推送标志或将一个微小的gitignore文件放在可以忽略所有内容的指令中? (在跟踪之前和跟踪之后,当有一个忽略建议时,它将永远/永远忽略该目录,除非我删除它?)

解决方法:

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

现在,由于文件已经在您的存储库中,您需要修改存储库的历史记录. Github在这个问题上有一个tutorial,归结为:

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

现在已经清理了存储库,您可以推送它.它应该尽可能快地完成.

上一篇:这个Java代码在做什么?


下一篇:c – 如何在pthread_barrier_t上告诉netbeans信息