Col*_*kay 0 git github gitignore
是的,这看起来像是重复的,因为我可以看到之前已经问了几次.但是我看到的其他答案都没有帮助我.
我有一个Umbraco安装,我想存储在Git(确切地说是GitHub),我显然想省略Umbraco创建的日志文件和临时文件.
我的.gitignore文件中有以下内容:
App_Data/TEMP/
App_Data/Logs/
App_Data/ClientDependency/
App_Data/Preview/
Run Code Online (Sandbox Code Playgroud)
但是,它不起作用.这些目录中的文件仍然会被添加.
我试过在最后添加一个星号(文档说它不应该被需要 - 它只处理该目录中的文件,如果它在那里.)
我确保每行末尾没有空格.
我仔细检查了目录名的大小写.
我已经从一种方式换到另一种方式.
如果我从存储库的根目录放入完整路径它确实有效,但这太具体了.(虽然我现在打算用它来解决这个问题).如果我们创建基于Umbraco的新项目,我希望能够轻松地重用.gitignore文件.
未正确处理完整路径的其他规则(例如NuGet的包文件夹)正在被正确处理.
packages/
Run Code Online (Sandbox Code Playgroud)
这条规则有效 - 我并没有真正看到差异.
谁能看到我在这里做错了什么?
UPDATE
有效的完整路径是:
/src/Company.Client.Web/App_Data/Logs/
/src/Company.Client.Web/App_Data/TEMP/
/src/Company.Client.Web/App_Data/ClientDependency/
/src/Company.Client.Web/App_Data/Preview/
Run Code Online (Sandbox Code Playgroud)
(我已经混淆了一点,但那就是现在的情况)
以下是GitHub for Windows所展示的内容:

更新2
.git文件夹位于存储库的根目录下,因此/.换句话说D:\github\RepositoryName\.git\,为了比较该src文件夹D:\github\RepositoryName\src\
自从git 1.8.2(2013年3月8日)开始,您现在可以使用**:
.gitignore和.gitattributes文件中的模式可以**/作为匹配0或更多级别子目录的模式.例如"
foo/**/bar"匹配"bar"在"foo"本身或" "的子目录中foo.
所以你要:
**/App_Data/TEMP/
**/App_Data/Logs/
**/App_Data/ClientDependency/
**/App_Data/Preview/
Run Code Online (Sandbox Code Playgroud)
在.gitignore中指定文件名或文件夹时,无论它在目录结构中出现在何处,都会被忽略.这就是原因packages/.
对于像App_Data/TEMP/.这样的部分路径,情况并非如此.
你能做的是以下几点:
*/*/App_Data/TEMP/
Run Code Online (Sandbox Code Playgroud)
App_Data/TEMP无论两个父目录如何命名,这都将忽略.但它只适用于层次结构的这个确切深度的那些文件夹,即它将忽略这些:
但它不会忽视这些:
[当模式包含斜杠但不以一个斜杠结束时],git将模式视为适合fnmatch(3)使用FNM_PATHNAME标志消耗的shell glob:模式中的通配符与路径名中的/不匹配.例如,"Documentation/*.html"匹配"Documentation/git.html",但不匹配"Documentation/ppc/ppc.html"或"tools/perf/Documentation/perf.html".
| 归档时间: |
|
| 查看次数: |
2082 次 |
| 最近记录: |