1

我想公开git archive,但有办法让用户要求排除某些文件或 glob,因此生成的存档文件不是很大。

通常你会将文件/全局列表写入.gitattributes然后运行git archive​​. 但这意味着每个磁盘存储库只有一个人可以请求存档,因为他们必须将他们的忽略导出列表写入.gitattributes,然后获取存档,然后再让步给其他人。这也意味着你之前在那里的任何设置都会被破坏。

有没有办法可以写入 /tmp/attributes-1 或另一个类似的临时文件,并告诉git archive读取该 .gitattributes 文件而不是$repo/.gitattributes? 阅读文档字符串,看起来不像。

https://git-scm.com/docs/git-archive

https://git-scm.com/docs/gitattributes

4

1 回答 1

2

您错过了 的--worktree-attributes选项git archive吗?

--worktree-attributes

在工作树中的文件中也可以查找属性.gitattributes(参见“属性”部分)。

...

请注意,属性默认取自.gitattributes 正在归档的树中的文件。如果您想调整事后生成输出的方式(例如,您提交时没有export-ignore在其 中添加适当的.gitattributes),请根据需要调整签出.gitattributes文件并使用 --worktree-attributesoption。或者,您可以保留在归档 $GIT_DIR/info/attributes文件中的任何树时应该应用的必要属性。

因此,您必须签出一个临时工作树,在那里设置所需的 gitattributes 并使用该--worktree-attributes选项。

于 2017-02-18T07:34:12.900 回答