我尝试使用以下.gitignore
配置排除除了我需要的文件以外的所有文件:
*.* # Ignore all files
*~ # Ignore temp files
\#* # Ignore temp files
!.gitignore
!*.conf
!**/*.conf
但是,执行./postgresql/9.3/warm-standby/postgresql.conf
时,不会显示文件git status
。如何修复我的.gitignore
?
Git版本是2.1.4
答案 0 :(得分:1)
首先:归功于@EtanReisner仔细研究这个和@RetoAebersold以提供正确的link
问题在于,使用以下声明(不是您的 .gitignore
的一部分),您将两个文件和目录列入黑名单:
*
现在,如果您使用*.*
,那通常不会有问题,因为大多数目录都不包含点(.
)。然而你的确如此:
* .*
postgresql/9.3
所以会发生的是所有目录都被列入黑名单。为了能够在目录中添加文件,首先需要将这些目录列入白名单。您可以使用oneliner执行此操作:
!*.*/
换句话说,将以斜杠结尾的所有内容列入白名单。
现在你也可以将这些文件列入白名单:
!*.conf
请注意,不需要将!**/*.conf
列入白名单(甚至可能不允许使用白名单,尤其是因为两个连续的星号**
仅在git 1.8中启用。*)。
更好的配置文件如下:
*.* # Ignore all files
*~ # Ignore temp files
\#* # Ignore temp files
!*/
!*.*/
!.gitignore
!*.conf