跳过主要内容

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,使其知道您想要将大文件存储在哪里。有两个选项

  1. 在文件系统中本地存储

  2. 通过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

项目详情


下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分发

git-bigfile-0.1.2.tar.gz (8.8 kB 查看哈希值)

上传时间

由以下组织支持