git bigfile允许您对大文件使用git,而无需将文件存储在git本身中
git-bigfile的Python项目详细描述
git bigfile是scott chacongit-media的python/fork的端口。 它允许您对大文件使用git,而不必将文件存储在git本身中。
配置
配置过滤器和传输
通过运行:
$ git bigfile config [--global]
或手动:
首先设置属性过滤器设置:
(once after install) $ git config --global filter.bigfile.clean "git-bigfile filter-clean" $ git config --global filter.bigfile.smudge "git-bigfile filter-smudge"
接下来,您需要配置git来告诉它您要将大文件存储在哪里。 有两个选项:
- 本地存储在文件系统路径中
- 通过sftp远程存储(应该可以与任何ssh服务器一起使用-需要 paramiko)
以下是~/.gitconfig(用于全局设置)中的相关部分 或在clone/.git/config中(用于每个repo设置):
[git-bigfile] transport = <local|sftp> # settings for local transport [git-bigfile "local"] path = <local_filesystem_path> # settings for sftp transport [git-bigfile "sftp"] hostname = <host> username = <user> path = <path_on_remote_server>
所有SFTP设置(路径除外)都将传递给paramiko.sshclient connect 方法。您可以设置:端口、密码、pkey、密钥文件名、超时…请参阅 帕拉米科API。
设置.gittattributes文件以将扩展名映射到筛选器
(in repo - once) $ echo "*.tar.gz filter=bigfile -crlf" > .gitattributes
具有这些扩展名的暂存文件将自动将它们复制到 bigfile缓存区域(.git/bigfile),直到运行“git bigfile push”,其中 已上载。签出尚未引用的bigfile将尝试 从缓存中检索它们,否则在运行“git”时会下载它们 大文件拉取”。
用法
配置要使用的筛选器和/或传输:
$ git bigfile config
然后:
(in repo - repeatedly) $ (hack, stage, commit)
将任何提交的bigfile推送到服务器:
$ git bigfile push
您还可以通过:
$ git bigfile status
它将显示等待上载的文件以及数据量 就是这样。如果要删除上载的大文件的本地缓存,请运行:
$ git bigfile clear
可以添加与中定义的扩展名不匹配的大文件 通过运行.gittattributes:
$ git bigfile add <huge_file>
它会将<;大文件>;添加到.gittattributes和索引中。
要展开本地没有的大文件,请运行:
$ git bigfile pull
安装
git bigfile需要python 2.5、2.6或2.7。 它已经在macos x和linux上进行了测试。
要安装,请运行:
$ pip install paramiko (to use sftp transport) $ pip install git-bigfile
版权所有
原著版权所有(c)2009斯科特查孔。 修改作品版权所有(c)2012-2013 Benjamin Bertrand。 有关详细信息,请参见许可证。