我如何git归档任意分支?

时间:2010-05-26 16:42:04

标签: git

git checkout master
git archive stage | tar -czf archive.tar.gz htdocs
# archives master because it's checked out.

我怎样才能归档舞台分支,无论我当前是谁?

1 个答案:

答案 0 :(得分:15)

git archive创建了一个tar存档,因此您不需要管道其输出tar,实际上它没有按照您的预期进行操作。您正在创建阶段分支的tar存档并将其传递给普通的tar命令,该命令不使用其标准输入,而只是在工作树中创建自己的htdocs存档,与git无关。

尝试:

git archive stage >stage.tar

或者,对于压缩存档:

git archive stage | gzip >stage.tar.gz

要归档htdocs子文件夹,您可以执行以下操作:

git archive stage:htdocs | gzip >stage-htdocs.tar.gz

或者,要在档案中包含文件夹名称:

git archive --prefix=htdocs/ stage:htdocs | gzip >stage-htdocs.tar.gz

或更简单:

git archive stage htdocs | gzip >stage-htdocs.tar.gz