我知道.gitignore文件隐藏Git版本控制中的指定文件。
我如何告诉.gitignore忽略除我使用Git跟踪的文件之外的所有内容?类似于:
# Ignore everything:
*
# Do not ignore these files:
script.pl
template.latex
我知道.gitignore文件隐藏Git版本控制中的指定文件。
我如何告诉.gitignore忽略除我使用Git跟踪的文件之外的所有内容?类似于:
# Ignore everything:
*
# Do not ignore these files:
script.pl
template.latex
当前回答
最简单的方法是强制添加文件。即使它被隐藏或嵌套在git忽略的子目录树中,它也将在git中进行说明。
例如:
x64文件夹已在中排除。gitignore:
x64/
但您希望包含位于x64/发布/目录中的文件myFile.py。然后你必须:
git add -f x64/Release/myFile.py
您可以对匹配模式的多个文件执行此操作,例如。
git add -f x64/Release/myFile*.py
等等
其他回答
如果您需要忽略除少数文件和少数根文件夹之外的所有内容,则简单的解决方案:
/*
!.gitignore
!showMe.txt
!my_visible_dir
神奇的是在/*(如上所述)中,它忽略(根)文件夹中的所有内容,但不递归。
要忽略目录中的某些文件,必须按正确的顺序执行此操作:
例如,忽略文件夹“application”中除index.php和文件夹“config”外的所有内容,注意顺序。
你必须先否定你想要的。
失败
应用程序/*
!应用程序/配置/*
!应用程序/index.php
作品
!应用程序/配置/*
!应用程序/index.php
应用程序/*
如果您想忽略目录中除一个文件外的全部内容,可以为文件路径中的每个目录编写一对规则。例如,.gitignore将忽略pippo文件夹,pippo/pluto/paperino.xml除外
pippo/*
!pippo/pluto
pippo/pluto/*
!pippo/pluto/paperino.xml
请注意,如果您只是在上面写了:
pippo/*
!pippo/pluto/paperino.xml
它无法工作,因为Git中不存在中间的pluto文件夹,因此paperino.xml找不到存在的位置。
这对我来说是有效的,我只想向repo提交一个Cordova插件:
...
plugins/*
!plugins/cordova-plugin-app-customization
要从.gitignore中排除文件夹,可以执行以下操作。
!app/
app/*
!app/bower_components/
app/bower_components/*
!app/bower_components/highcharts/
这将忽略bower_components中的所有文件/子文件夹,/hightcharts除外。