如何在进行git归档时只获取根目录(和另一个子目录)

如何在进行git归档时只获取根目录(和另一个子目录),git,Git,我想使用git archive获取存储库的一个子集。e、 假设这个回购协议布局 foo.js blah.sh subdir/ whatever.js morestuff.js subdir2_which_contains_A_LOT_of_stuff/ whatever.js morestuff.js 我知道我可以用git archive-o../subrachive.zip HEAD:subdir来获取subdir,但是如果没有包含很多东西的subdir,我怎么才能

我想使用git archive获取存储库的一个子集。e、 假设这个回购协议布局

foo.js 
blah.sh
subdir/
   whatever.js
   morestuff.js
subdir2_which_contains_A_LOT_of_stuff/
   whatever.js
   morestuff.js
我知道我可以用git archive-o../subrachive.zip HEAD:subdir来获取subdir,但是如果没有包含很多东西的subdir,我怎么才能获取根和subdir呢

以某种方式明确列出包含大量内容的子目录是可以的


编辑:我不认为我对这个问题的最初假设是正确的,因此我不认为答案是正确的:/(特别是“我知道我可以用”bit获取subdir是一个误解)

git archive
手册页中,我们可以看到:

--worktree-attributes
  Look for attributes in .gitattributes files in the working tree as well (see the section called “ATTRIBUTES”).

…因此,您可以定义一个专用的.gittributes文件,以满足您的需要

另外,我们还被告知:

<extra>
   This can be any options that the archiver backend understands. See next section.

这可以是archiver后端理解的任何选项。见下一节。
因此,例如,如果我们正在结束一个tarball,并且后端命令是tar,那么我们可以使用--exclude(它是tar的一部分,而不是git)来实现相同的目标,这可能比定义整个git策略更容易

<extra>
   This can be any options that the archiver backend understands. See next section.