libgit2签出选项。路径忽略否定前缀

libgit2签出选项。路径忽略否定前缀,git,libgit2,Git,Libgit2,使用libgit2,我试图在工作树中的所有文件上运行git_checkout_树,同时跳过一些特定文件。 填充git\u checkout\u选项checkout\u选项如下 char* p[2]= {"*", "!myFile.dat"}; checkout_opts.paths.strings = p; checkout_opts.paths.count = 2; 仍然签出myFile.dat(位于存储库根目录中)。我试图坚持.gitignore模式

使用libgit2,我试图在工作树中的所有文件上运行git_checkout_树,同时跳过一些特定文件。 填充git\u checkout\u选项checkout\u选项如下

char* p[2]= {"*", "!myFile.dat"};
checkout_opts.paths.strings = p;
checkout_opts.paths.count = 2;
仍然签出myFile.dat(位于存储库根目录中)。我试图坚持.gitignore模式语法。我已经编译了libgit2,并试图了解代码库。我看到wildmatch.c定义了一个否定类'!'和一个否定类“^”。不幸的是,使用^myFile.dat不起作用。libgit2不支持模式否定,还是我做错了什么?

从中,libgit2还不支持稀疏签出

因此,
git\u checkout\u树
可能不支持最近的wildmatch(一年前,2019年6月)。

没有在中测试否定路径。

实际上,
签出的路径中没有否定支持。这是出于设计,尽管我可以想象这可能会改变以支持稀疏签出样式的路径。@EdwardThomson我可以理解,特别是考虑到Git 2.28显示的负路径被破坏()