我如何git归档任意分支?

Rya*_*nce 8 git

git checkout master
git archive stage | tar -czf archive.tar.gz htdocs
# archives master because it's checked out.
Run Code Online (Sandbox Code Playgroud)

无论当前我在哪里,我如何归档舞台分支?

CB *_*ley 16

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

尝试:

git archive stage >stage.tar
Run Code Online (Sandbox Code Playgroud)

或者,对于压缩存档:

git archive stage | gzip >stage.tar.gz
Run Code Online (Sandbox Code Playgroud)

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

git archive stage:htdocs | gzip >stage-htdocs.tar.gz
Run Code Online (Sandbox Code Playgroud)

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

git archive --prefix=htdocs/ stage:htdocs | gzip >stage-htdocs.tar.gz
Run Code Online (Sandbox Code Playgroud)

或更简单地说:

git archive stage htdocs | gzip >stage-htdocs.tar.gz
Run Code Online (Sandbox Code Playgroud)