给定一个简单的测试存储库,其中包含两个文件的单个提交,a
并且b
,我可以获得特定文件的列表:
$ git ls-files a
a
或不包括特定文件的所有文件的列表:
$ git ls-files . ':!b'
a
我可以创建特定文件的存档:
$ git archive HEAD a | tar tf -
a
但我无法创建除特定文件之外的所有文件的存档:
$ git archive HEAD . ':!b' | tar tf -
a
b
在我的真实存储库中,使用特定文件存档的选项对我来说不是一个选项,因为它超过了最大命令行参数长度。
我知道我可以.gitattributes
通过export-ignore
属性存储要排除的文件列表,但该列表是动态生成的。我可以自动更改文件,但在另一次提交之前不会收到更改。
是否有其他一些无需再次提交即可工作的调用?