gitignore:忽略子文件夹中除特定文件类型之外的所有内容

5 git gitignore

我有一个 .gitignore 文件,它似乎无法正常工作。它不会按预期上传子目录中的任何文件,但我添加了除所有 .cs 文件之外的文件,但子目录仍为空。这是我的代码:

/*

!.gitignore

!my_repo/build/game/Assets/Scripts/*.cs
Run Code Online (Sandbox Code Playgroud)

除了 .cs 文件和 .gitignore 文件之外,我什么都不想要。但 .cs 文件似乎仍然没有被 git 拾取。谢谢。

附言。

我也尝试这样做,但它也不起作用:

!*.cs
Run Code Online (Sandbox Code Playgroud)

wsp*_*gin 7

您还需要包含该目录。请参阅https://git-scm.com/docs/gitignore#_examples

\n\n
# Ignore all (assumes ignore is in my_repo/build/.gitignore)\n/*\n!.gitignore    \n\n# Exempt directories\n# Also ignore all files except the sub directories in the path\n!game/\ngame/*\n!game/Assets\ngame/Assets/*\n!game/Assets/Scripts\ngame/Assets/Scripts/*\n\n# Except your CS files\n!game/Assets/Scripts/*.cs\n
Run Code Online (Sandbox Code Playgroud)\n\n

-- 更新以增加清晰度 --

\n\n

这似乎违反直觉,但你必须包括该目录,因为:

\n\n
\n

如果排除某个文件的父目录,则无法重新包含该文件。出于性能原因,Git 不会\xe2\x80\x99t 列出排除的目录,因此包含文件上的任何模式都无效,无论它们是在哪里定义的。

\n
\n\n

因此,您必须包含该目录,然后默认忽略该目录中的所有内容,然后创建您的豁免。

\n