我有这样的目录结构:
.git/
.gitignore
main/
...
tools/
...
...
Run Code Online (Sandbox Code Playgroud)
在主要工具和工具以及任何其他目录中,可以有一个"bin"目录,我想忽略它(我也想忽略它下面的所有内容).我在.gitignore中尝试了这些模式中的每一种,但它们都不起作用:
/**/bin/**/*
/./**/bin/**/*
./**/bin/**/*
**/bin/**/*
*/bin/**/*
bin/**/*
/**/bin/* #and the others with just * at the end too
Run Code Online (Sandbox Code Playgroud)
谁能帮我吗?如果我这样做,第一个模式(我认为应该工作的模式)工作得很好:
/main/**/bin/**/*
Run Code Online (Sandbox Code Playgroud)
但我不希望每个顶级目录都有一个条目,我不想每次添加新目录时都要修改.gitignore.
这是在Windows上使用最新的msysgit.
编辑:还有一件事,有文件和目录在他们的名字中有子字符串'bin',我不希望那些被忽略:)
CB *_*ley 1749
在版本1.8.2之前,**没有任何特殊含义.gitignore.从1.8.2 git支持**意味着零个或多个子目录(参见发行说明).
忽略目录树中当前级别以下任何名称为bin的所有目录的方法是使用.gitignore具有以下模式的文件:
bin/
Run Code Online (Sandbox Code Playgroud)
在man页面中,有一个忽略foo使用类似模式调用的目录的示例.
编辑:
如果您的git索引中已有任何bin文件夹,您不再希望跟踪,则需要明确删除它们.Git不会因为现在匹配新.gitignore模式而停止跟踪已经被跟踪的路径.仅从索引(--cached)recursivelly(-r)执行文件夹remove(rm).root bin文件夹的命令行示例:
git rm -r --cached bin
Run Code Online (Sandbox Code Playgroud)
Mic*_*ker 455
将.gitignore你的梦想似乎是:
bin/
Run Code Online (Sandbox Code Playgroud)
在顶层.
pla*_*cys 216
我认为git初学者值得一提:
如果您已经签入了一个文件,并且想要忽略它,那么如果稍后添加规则,Git将不会忽略该文件.在这些情况下,您必须首先在终端中运行以下命令来解除文件:
git rm --cached
因此,如果您希望在编辑.gitignore之后添加忽略本地存储库中的某些目录(已存在),您希望在根目录上运行此目录
git rm --cached -r .
git add .
Run Code Online (Sandbox Code Playgroud)
它将基本上"刷新"您的本地存储库并取消暂停忽略的文件.
看到:
http://git-scm.com/docs/git-rm ,
https://help.github.com/articles/ignoring-files/
Von*_*onC 69
在**始终无法正常工作之前,但因为git的1.8.2(三月8日2013) ,它似乎被明确提及,并支持:
.gitignore和.gitattributes文件中的模式可以**/作为匹配0或更多级别子目录的模式.例如"
foo/**/bar"匹配"bar"在"foo"本身或" "的子目录中foo.
在您的情况下,这意味着现在可以支持此行:
/main/**/bin/
Run Code Online (Sandbox Code Playgroud)
wis*_*cky 46
[Bb]in/
Run Code Online (Sandbox Code Playgroud)
匹配大写和小写
Cor*_*ory 32
我没有在这里看到它,但这似乎是区分大小写的.一旦我改为/ Bin,文件就会被按预期忽略.
Jai*_*der 24
[Bb]in 将解决问题,但是......这里有一个你应该忽略的更广泛的事情清单(GitExtension的样本列表):
#ignore thumbnails created by windows
Thumbs.db
#Ignore files build by Visual Studio
*.user
*.aps
*.pch
*.vspscc
*_i.c
*_p.c
*.ncb
*.suo
*.bak
*.cache
*.ilk
*.log
[Bb]in
[Dd]ebug*/
*.sbr
obj/
[Rr]elease*/
_ReSharper*/
Run Code Online (Sandbox Code Playgroud)
Joc*_*ick 17
如果您正在.gitignore为任何Visual Studio(.NET)解决方案寻找一个出色的全局文件 - 我建议您使用这个:https://github.com/github/gitignore/blob/master/VisualStudio.gitignore
AFAIK它具有最全面.gitignore的.NET项目.
Bra*_*ung 16
第1步:将以下内容添加到文件.gitignore.
# User-specific files
*.suo
*.user
*.userosscache
*.sln.docstates
# Build results
[Dd]ebug/
[Dd]ebugPublic/
[Rr]elease/
[Rr]eleases/
x64/
x86/
bld/
[Bb]in/
[Oo]bj/
# Visual Studio 2015 cache/options directory
.vs/Run Code Online (Sandbox Code Playgroud)
第2步:确保生效
如果问题仍然存在,那是因为.gitignore中的设置只能忽略最初未跟踪的文件.如果某些文件已包含在版本控制系统中,则修改.gitignore无效.要完全解决此问题,您需要打开Git Bash或Package Manager Console(请参见下面的屏幕截图),以便在存储库根文件夹中运行以下命令.
$ git rm -r --cached .
$ git add .
$ git commit -m 'Update .gitignore'Run Code Online (Sandbox Code Playgroud)
Ant*_*nyC 12
从字面上看,没有一个答案对我有用。唯一对我有用的是(在 Linux 上):
**/bin
(yes without the / in the end)
git version 2.18.0
Run Code Online (Sandbox Code Playgroud)
作为通知;
如果您认为.gitignore某种方式不起作用(因此foo/*在其中添加了文件夹,但git status仍显示该文件夹内容已修改或类似),则可以使用此命令;
git checkout -- foo/*
| 归档时间: |
|
| 查看次数: |
856393 次 |
| 最近记录: |