我知道.gitignore文件隐藏Git版本控制中的指定文件。

我如何告诉.gitignore忽略除我使用Git跟踪的文件之外的所有内容?类似于:

# Ignore everything:
*

# Do not ignore these files:
script.pl
template.latex

当前回答

我把它搞定了

# Vendor
/vendor/braintree/braintree_php/*
!/vendor/braintree/braintree_php/lib

其他回答

# ignore these
*
# except foo
!foo

我对否定单个文件也有一些问题。我能够提交它们,但我的IDE(IntelliJ)总是抱怨被忽略的文件被跟踪。

git ls-files -i --exclude-from .gitignore

显示了两个文件,我以这种方式排除了这两个文件:

public/
!public/typo3conf/LocalConfiguration.php
!public/typo3conf/PackageStates.php

最后,这对我有用:

public/*
!public/typo3conf/
public/typo3conf/*
!public/typo3conf/LocalConfiguration.php
!public/typo3conf/PackageStates.php

关键是对文件夹typeo3conf/first的否定。

此外,声明的顺序似乎无关紧要。相反,您需要显式否定所有子文件夹,然后才能否定其中的单个文件。

文件夹!public/type3conf/和文件夹内容public/pype3conf/*是.gitignore的两个不同的东西。

伟大的线程!这个问题困扰了我一段时间;)

这就是我保持文件夹结构的方式,而忽略其他所有内容。每个目录(或.gitkeep)中都必须有一个README.md文件。

/data/*
!/data/README.md

!/data/input/
/data/input/*
!/data/input/README.md

!/data/output/
/data/output/*
!/data/output/README.md

这对我来说是有效的,我只想向repo提交一个Cordova插件:

...
plugins/*
!plugins/cordova-plugin-app-customization

要忽略目录中的某些文件,必须按正确的顺序执行此操作:

例如,忽略文件夹“application”中除index.php和文件夹“config”外的所有内容,注意顺序。

你必须先否定你想要的。

失败

应用程序/*

!应用程序/配置/*

!应用程序/index.php

作品

!应用程序/配置/*

!应用程序/index.php

应用程序/*