git-bigfile 允许您使用Git处理大文件,而无需将文件存储在Git本身中
项目描述
git-bigfile 是 Scott Chacon 的 git-media 的 python 端口/分支。它允许您使用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(用于每个仓库的设置)中应包含的相关部分
[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、key_filename、超时……请参阅 paramiko API。
设置 .gitattributes 文件以将扩展名映射到过滤器
(in repo - once) $ echo "*.tar.gz filter=bigfile -crlf" > .gitattributes
使用这些扩展名进行暂存文件将自动将它们复制到大文件缓存区域(.git/bigfile),直到您运行 'git bigfile push',然后它们被上传。引用您尚未拥有的大文件的检出将尝试从缓存中检索它们,否则在您运行 'git bigfile pull' 时将下载它们。
用法
要配置要使用的过滤器和/或传输
$ git bigfile config
然后
(in repo - repeatedly) $ (hack, stage, commit)
将任何提交的大文件推送到服务器
$ git bigfile push
您还可以通过以下方式检查您的大文件的状态
$ git bigfile status
这将显示等待上传的文件以及数据量。如果您想删除已上传大文件的本地缓存,请运行
$ git bigfile clear
您可以通过运行添加不匹配 .gitattributes 中定义的扩展名的大文件
$ git bigfile add <huge_file>
这将把<huge_file>添加到.gitattributes和索引中。
要展开本地没有的大文件,运行
$ 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 Scott Chacon。修改作品版权(c)2012-2013 Benjamin Bertrand。有关详细信息,请参阅LICENSE。
项目详情
git-bigfile-0.1.2.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 4554b4f7e1a6b095acc514b5e10f1e1052b6589cbab536180f3202c1be3024ce |
|
MD5 | 3c157a4d309bcbbd9f865b79ea67f796 |
|
BLAKE2b-256 | 9f02fa18b8914e03616296a298402c8dde1670fee63b960c408649e3077e5304 |