解决 Git 问题,避免存储具有反斜杠字符的文件名/路径,这在 Windows 中无效

Solve Git problem to avoid storing filenames/paths having backslash chars, which are invalid in Windows

提问人:klor 提问时间:7/5/2023 最后编辑:klor 更新时间:7/6/2023 访问量:55

问:

我想解决 Git 问题以避免存储具有反斜杠字符的文件名/路径,这些字符在 Windows 中无效,例如./etc/systemd/system/snap-git\x2dfilter\x2drepo-7.mount

我应该向 .gitignore 添加一个特定的字符串,以避免存储上面提到的文件名/路径。

我试了进去.gitignore

/*\*/
snap-git

但是 snap-git\x2dfilter\x2drepo-7.mount 文件仍被添加到 Git 存储库中。

从 Git 存储库中排除这些无效文件的正确正则表达式是什么?

我不知道为什么 and 在 .gitignore 中不起作用。/*\*/snap-git

我做错了什么? 也许 .gitignore 与完整路径不匹配,只是文件名本身? 这就是我错的重点吗?

编辑1: 我在 .gitignore 文档中找到了以下信息:

Two consecutive asterisks ("**") in patterns matched against full pathname 
may have special meaning:

A trailing "/**" matches everything inside. For example, "abc/**" 
matches all files inside directory "abc", relative to the location of 
the .gitignore file, with infinite depth.

因此,我必须使用模式来匹配目录中的所有文件:snap-gittrailing "/**"snap-git

snap-git/**
git gitignore 存储库 无效字符

评论

0赞 TTT 7/6/2023
我猜你需要一行.LMK,如果可行,我可以给出答案。*\\*
0赞 TTT 7/6/2023
请注意,它仅适用于未跟踪的文件,因此,如果任何文件已提交且当前已跟踪,则无论条目如何,对这些文件的修改仍将显示为更改。在这种情况下,您需要删除文件,并提交删除,这样就可以防止从那时起添加它们。.gitignore.gitignore.gitignore
0赞 klor 7/6/2023
@TTT 非常感谢你的想法。我明天将测试这个建议。
0赞 klor 7/6/2023
我不知道为什么 and 在 .gitignore 中不起作用。我做错了什么?/*\*/snap-git
0赞 TTT 7/8/2023
你试过我的建议吗?我的假设是行不通的,因为你需要两个斜杠而不是一个斜杠。(您必须使用另一个反斜杠转义反斜杠。此外,尾随表示目录而不是文件。不起作用的原因是您没有名为“snap-git”的文件或目录。不起作用的原因也是因为您没有名为“snap-git”的目录。顺便说一句,我猜会起作用的。/*\*//snap-gitsnap-git/**snap-git*

答: 暂无答案