博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
忽略git项目上的任何'bin'目录
阅读量:3576 次
发布时间:2019-05-20

本文共 2647 字,大约阅读时间需要 8 分钟。

我有这样的目录结构:

.git/.main/  ...tools/  ......

在main和tools以及任何其他目录中的任何级别上,都可以有一个“ bin”目录,我想忽略该目录(我也想忽略该目录下的所有内容)。 我已经在.gitignore中尝试了每种模式,但是它们都不起作用:

/**/bin/**/*/./**/bin/**/*./**/bin/**/***/bin/**/**/bin/**/*bin/**/*/**/bin/* #and the others with just * at the end too

谁能帮我吗? 如果这样做,第一个模式(我认为应该起作用的模式)就可以正常工作:

/main/**/bin/**/*

但是我不想每个顶级目录都有一个条目,也不想每次添加新目录时都必须修改.gitignore。

在Windows上使用最新的msysgit。

编辑: 还有一件事,有些文件和目录的名称中有子字符串“ bin”,我不想忽略它们:)


#1楼

您梦dream .gitignore似乎是:

bin/

在顶层。


#2楼

在1.8.2版之前, **.gitignore没有任何特殊含义。 从1.8.2开始,git支持**表示零个或多个子目录(请参见 )。

忽略目录树中当前级别以下任何位置的所有名为bin的目录的方法是使用.gitignore文件,其模式如下:

bin/

man页中,有一个使用类似模式忽略名为foo的目录的示例。

编辑:如果您已经不再希望跟踪git索引中的任何bin文件夹,则需要显式删除它们。 Git不会仅仅因为它们现在匹配新的.gitignore模式而停止跟踪已经被跟踪的路径。 递归地( -r )从索引( --cached )仅执行文件夹删除( rm )。 根bin文件夹的命令行示例:

git rm -r --cached bin

#3楼

我没有看到这里提到的内容,但这似乎区分大小写。 一旦更改为/ Bin,文件将按预期被忽略。


#4楼

**以前从未正常运行过,但是自以来,似乎已明确提及并支持它:

.gitignore.gitattributes文件中的模式可以具有**/ ,作为与0或更高级别的子目录匹配的模式

例如,“ foo/**/bar ”匹配“ bar ”中的“ foo ”本身或在“子目录foo ”。

就您而言,这意味着现在可以支持此行:

/main/**/bin/

#5楼

[Bb]in/

匹配大写和小写


#6楼

[Bb]in将解决问题,但是...这里是您应该忽略的更广泛的事情列表(GitExtension的示例列表):

#ignore thumbnails created by windowsThumbs.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*/*.sbrobj/[Rr]elease*/_ReSharper*/

#7楼

作为通知;

如果您认为.gitignore不能以某种方式工作(因此在其中添加了foo/*文件夹,但是git status仍显示该文件夹的内容已被修改或类似的内容),则可以使用此命令;

git checkout -- foo/*


#8楼

我认为对于git初学者来说值得一提:

如果您已经签入了文件,并且想要忽略它, 那么以后再添加规则时, Git将不会忽略该文件 。 在这种情况下,必须首先通过在终端中运行以下命令来取消跟踪文件:

git rm --cached

因此,如果要在编辑.gitignore之后添加忽略本地存储库中某些目录(已经存在)的目录,则希望在根目录下运行该目录

git rm --cached -r .git add .

基本上,它将“刷新”您的本地存储库并取消暂存被忽略的文件。

看到:


#9楼

如果您正在为任何Visual Studio(.NET)解决方案寻找一个出色的全局.gitignore文件-我建议您使用此文件: :

AFAIK对于.NET项目具有最全面的.gitignore


#10楼

将** / bin /添加到.gitignore文件中对我来说很成功(注意:bin文件夹未添加到索引中)。


#11楼

对于2.13.3及更高版本,仅在.gitignore文件中写入bin应该忽略该bin及其所有子目录和文件

箱子


#12楼

步骤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/

第2步:确保生效

如果问题仍然存在,那是因为.gitignore中的设置只能忽略最初未被跟踪的文件。 如果版本控制系统中已包含一些文件,则修改.gitignore无效。 要完全解决此问题,您需要打开Git BashPackage Manager控制台 (请参见下面的屏幕截图)以在存储库根文件夹中运行以下命令。

$ git rm -r --cached . $ git add . $ git commit -m 'Update .gitignore'

这样问题就可以彻底解决了。


#13楼

从字面上看,没有一个答案对我真正有用。 唯一对我有用的是(在Linux上):

**/bin(yes without the / in the end)git version 2.18.0

#14楼

如果.gitignore内部的模式以斜杠/结束,它将仅找到与目录匹配的内容。

换句话说, bin/将匹配目录bin及其下的路径,但不会匹配常规文件或符号链接bin


如果该模式不包含斜杠 (例如bin Git中的斜线) ,则Git将其视为外壳glob模式(贪婪)。 所以最好是使用简单的/bin

bin并不是解决此特定问题的最佳解决方案。

转载地址:http://zxogj.baihongyu.com/

你可能感兴趣的文章
2021-06-09数据库添加多条数据
查看>>
简单的JAVA小作品
查看>>
CMake下载
查看>>
未调用fflush产生的图片文件无法打开问题
查看>>
SQL 约束(二)
查看>>
SQL ALTER用法(三)
查看>>
SQL where子句及查询条件语句(六)
查看>>
SQL 连接JOIN(九)
查看>>
linux VM虚拟机可以ping通主机,但主机无法ping通虚拟机
查看>>
C++ 中Struct与typedef struct总结
查看>>
WNetAddConnection2调用失败,错误码1200/1312
查看>>
POI读写Excel的基本使用
查看>>
淘宝网站的架构演进
查看>>
设置zookeeper开机自启动流程
查看>>
CentOS安装mysql5.7的教详细流程
查看>>
项目整合微信扫码登录功能
查看>>
分布式文件系统FastDfs的搭建
查看>>
Springboot项目利用Java客户端调用FastDFS
查看>>
全文检索工具elasticsearch的安装和简单介绍
查看>>
利用Kibana学习全文检索工具elasticsearch
查看>>