小弟最近在使用git, 找了挺长时间也没有找到git help的中文文档, 所有就萌生了翻译git help文档的想法,
但深知自己势单力薄,不但英语水平不高, 而且git文档量非常之大, 再加上工作繁忙, 所有想邀请有翻译想法的
人提供帮助, 大家一起做就会很快了, 一起完善就会很好了.
以下是我翻译的第一篇git-archive,基于git 1.8.0, 因为我使用时间不长很多细节还没有领悟, 所有会有很
多不准确之处,其中标红的部分是我不太明白的, 当然不标红的也有可能是错误的, 希望有人批评指正, 更希望
有人一起来做这个工作.
这里不能上传附件啊, 有志同道合的朋友可以把你的翻译发我邮邮箱, [email protected]
我会把它贴出来, 并署上翻译者的大名, 希望能得到大家的帮助, 分享快乐, 快乐分享.
一定是要基于git 1.8.0才可以啊
git-archive
名字
git-archive - 从一棵提交树中创建归档文件
概要
gitarchive [--format=
[-o | --output=
[--remote=
[
描述
根据指定的格式, 将一棵提交树所包含的树结构创建为归档文件, 并输出到
标准输出, 如果指定了
的文件名前缀.
当给定的ID是tree ID或commit ID(或tag ID)时,git archive会有不同的表现,
在第一种情况时, 当前时间将作为归档文件里每一个文件的修改时间, 对于后者,
修改时间会被记录在commit对象中的提交时间所取代.另外,如果使用tar格式,
commit ID会被记录在归档文件的头部, 可以使用gitget-tar-commit-id提取此
时间, 对于zip格式的文件, commit ID是作为文件备注存储的.
选项
--format=
归档文件的格式:tar或者zip.如果没有指定此选项, 并且给出了输出文件名,
那么会根据文件名来推断归档格式(e.g. 指定输出文件名为"foo.zip", 那么
输出文件将以zip格式打包), 否则归档格式为tar.
-l, --list
显示所有可用的格式.
-v,--verbose
打印归档进度到标准错误输出.
--prefix=
为归档中的每个文件追加一个文件名前缀.
-o
将归档文件输出到
--worktree-attributes
在工作目录的gitattributes下寻找属性.
可以是后端归档程序能够处理的任何一个选项, 见下一节.
--remote=
不是从本地版本库创建归档, 而是从远程版本库创建归档文件.
--exec=
与--remote共同使用,指定执行git-upload-archive时的提供远程路径.
创建归档的tree或者commit ID.
如果没有路径参数, 当前工作目录下的所有文件和子目录, 都会被包含在
归档文件中, 如果指定了一个或者多个目录, 仅仅指定的文件或目录才会
被包含.
后端附加选项
zip
-0
只保存文件而不压缩.
-9
最高并且最慢的压缩级别. 可以指定1-9之间任何一个数字来调整压缩速度
和压缩比.
配置
tar.umask
这个变量用于限制tar归档的权限位, 缺省值是0002, 缺省值关闭了全局
可写位, 特殊变量"user"表示会使用归档创建者的umask作为归档文件的
权限位. 查看umask(2)获得更详细的信息, 如果指定了--remote, 那么
只有远程版本库的配置才会起作用.
tar.
这个变量指定了一个shell命令, gitarchive的输出将通过管道传送给
此命令. 这个命令在shell中执行, 把生成的tar文件作为它的标准输入,
并且把最终输出输出到它的标准输出.任何一个压缩级别选项都可以传给
这个命令(e.g., "-9").如果没有指定格式, 那么
文件的扩展名.
"tar.gz" 和 "tgz"是自动定义的,并默认使用gzip -cn.
可以使用用户定义命令来覆盖它.
tar.
如果为true, 那么远程客户端就可以通过git-upload-archive使用
格式. 对于用户定义的格式, 默认为false, 但是对于"tar.gz" 和 "tgz"
默认为true.
属性
export-ignore
如果文件或者目录带有export-ignore属性, 那么就不会被添加到归档
文件. 查看gitattributes(5)获得更详细的信息.
export-subst
如果一个文件设置了export-subst属性,那么当git把它添加到归档
文件中时, 或扩展几个占位符. 查看gitattributes(5)获得更详细的信息.
属性值默认从要归档的提交树的.gitattributes里面获得, 如果你想改变输出
生成的方式(e.g. 在提交时忘记了在.gitattributes文件中加入export-ignore),
必要时可以调整检出的.gitattributes文件, 并使用--worktree-attributes
选项. 另外, 可以把归档所有树都要使用的属性放到$GIT_DIR/info/attributes
文件中.
示例
gitarchive --format=tar --prefix=junk/ HEAD | (cd /var/tmp/ && tar xf -)
在当前分支上, 使用最新提交所在的提交树创建归档文件, 并解压到
/var/tmp/junk目录.
gitarchive --format=tar --prefix=git-1.4.0/ v1.4.0 | gzip > git-1.4.0.tar.gz
根据v1.4.0发布版创建一个压缩包.
gitarchive --format=tar.gz --prefix=git-1.4.0/ v1.4.0 > git-1.4.0.tar.gz
同上, 但使用内置的tar.gz 处理.
gitarchive --prefix=git-1.4.0/ -o git-1.4.0.tar.gz v1.4.0
同上, 但压缩格式是根据输出文件的文件名来推断的.
gitarchive --format=tar --prefix=git-1.4.0/ v1.4.0^{tree}
| gzip > git-1.4.0.tar.gz
根据1.4.0发布版创建一个压缩包, 但是不加全局扩展的pax头.
gitarchive --format=zip --prefix=git-docs/ HEAD:Documentation/ > git-1.4.0-docs.zip
把当前头指针的Documentation目录下的所有文件打包为git-1.4.0-docs.zip.
压缩包里面的文件都以git-docs/作为前缀.
gitarchive -o latest.zip HEAD
在当前分支上, 使用最新提交所在的提交树创建一个zip归档文件.
注意, 输出文件的格式是从输出文件的扩展名推断出来的.
git configtar.tar.xz.command "xz -c"
为了创建LZMA-压缩的归档文件, 配置一个"tar.xz"格式.
可以通过指定--format=tar.xz或者通过使用-o foo.tar.xz创建输出文件
来使用它.
另见
gitattributes(5)