Mar*_*cel 400 git directory ignore gitignore
我的.Net解决方案中有很多项目.我想排除所有"bin/Debug"和"bin/Release"文件夹(及其内容),但仍然包含"bin"文件夹本身以及其中包含的任何dll.
带有"bin /"的.gitignore忽略"Debug"和"Release"文件夹,但也包含"bin"文件夹中包含的任何dll.
.gitignore文件中的"bin/Debug"或"bin/Release"不会排除目录,除非我完全将忽略模式限定为"Solution/Project/bin/Debug" - 我不想这样做需要在我的解决方案中为每个项目包含这个完整模式,并为添加的任何新项目添加它.
有什么建议?
Jos*_*Lee 508
你试过通配符吗?
Solution/*/bin/Debug
Solution/*/bin/Release
Run Code Online (Sandbox Code Playgroud)
使用git 1.8.2版,您还可以使用**通配符匹配任何级别的子目录:
**/bin/Debug/
**/bin/Release/
Run Code Online (Sandbox Code Playgroud)
And*_*eas 100
您可以在顶层使用.gitignore忽略项目中具有相同名称的所有目录.例如:
Debug/
Release/
Run Code Online (Sandbox Code Playgroud)
这应该立即更新,以便在您执行git状态时可见.确保这些目录尚未添加到git中,因为这将覆盖忽略.
mgo*_*old 50
问题不是要求忽略所有子目录,但我无法在任何地方找到答案,所以我会发布:*/*.
aja*_*n81 36
以上所有答案都是有效的,但我提到的一点是,一旦你将该目录中的文件添加到repo中,就不能忽略包含该文件的目录/子目录(git会忽略该指令) ).您必须首先从repo中删除目标目录中的所有文件,然后您可以忽略该文件夹.
Mid*_*ava 27
除了在.gitignore文件中输入正确的条目之外,如果您试图忽略已经添加到repo中的内容,则必须git rm -r /path/to/dir在将dir添加到.gitignore文件之前执行并提交.否则git将忽略的唯一事情就是你的ignore指令.
Tol*_*lga 21
忽略存储库根目录的所有子文件夹,但包含此文件夹根目录中的文件的最简单形式是将其添加到您的 .gitignore 文件中:
*/
Run Code Online (Sandbox Code Playgroud)
如果您想忽略另一个子文件夹的所有子文件夹(仍包括其中的文件):
subfolder/*/
Run Code Online (Sandbox Code Playgroud)
如果您已经提交了需要忽略的项目,则需要在忽略它们之前将它们从存储库中删除。
要删除存储库根目录的所有子文件夹:
git rm -r --cached */*
Run Code Online (Sandbox Code Playgroud)
要删除另一个子文件夹的所有子文件夹:
git rm -r --cached subfolder/*/*
Run Code Online (Sandbox Code Playgroud)
Kat*_*tie 17
我在机器上工作的唯一方法是这样做:
# Ignore all directories, and all sub-directories, and it's contents:
*/*
#Now ignore all files in the current directory
#(This fails to ignore files without a ".", for example
#'file.txt' works, but
#'file' doesn't):
/*.*
#Only Include these specific directories and subdirectories:
!wordpress/
!wordpress/*/
!wordpress/*/wp-content/
!wordpress/*/wp-content/themes/
Run Code Online (Sandbox Code Playgroud)
请注意您必须明确允许要包含的每个级别的内容.因此,如果我在主题下有5个子目录,我仍然需要拼写出来.
这是来自@ Yarin的评论:https://stackoverflow.com/a/5250314/1696153
这些是有用的主题:
我也试过了
*
*/*
**/**
Run Code Online (Sandbox Code Playgroud)
和 **/wp-content/themes/**
要么 /wp-content/themes/**/*
这些也不适用于我.很多线索和错误!
要排除内容和子目录:
**/bin/*
Run Code Online (Sandbox Code Playgroud)
要仅排除所有子目录但保留内容,请添加“ /”:
**/bin/*/
Run Code Online (Sandbox Code Playgroud)
小智 6
这么多年了,这个页面似乎仍然出现在谷歌搜索的顶部......
现代版本的 Git 支持在单个存储库中嵌套.gitignore文件。只需将.gitignore文件放在您想要忽略的子目录中即可。使用单个星号来匹配该目录中的所有内容:
echo "*" > /path/to/bin/Debug/.gitignore
echo "*" > /path/to/bin/Release/.gitignore
Run Code Online (Sandbox Code Playgroud)
如果您之前进行过提交,请记住删除之前跟踪的文件:
git rm -rf /path/to/bin/Debug
git rm -rf /path/to/bin/Release
Run Code Online (Sandbox Code Playgroud)
您可以通过向git status您显示从跟踪中删除的所有文件来确认这一点。
在继续跟踪/bin目录中的文件时,忽略所有子文件夹的通用方法是将以下行添加到项目的.gitignore文件中:
bin/*/*
Run Code Online (Sandbox Code Playgroud)
如果只想忽略特定的命名子文件夹,则可以执行以下操作:
bin/Debug/*
bin/Release/*
Run Code Online (Sandbox Code Playgroud)
nb。如果该bin目录不在您项目的根目录中(与.gitignore文件一起),则代替例如。bin/*/*您可能需要path/to/bin/*/*
| 归档时间: |
|
| 查看次数: |
355570 次 |
| 最近记录: |