Source tree.gitignore可忽略除特定目录/文件以外的所有内容

Source tree.gitignore可忽略除特定目录/文件以外的所有内容,git,gitignore,atlassian-sourcetree,Git,Gitignore,Atlassian Sourcetree,我见过很多人,他们说的都差不多,但出于某种原因,我无法使用SourceTree让它工作。 我的文件夹结构如下所示,我想忽略除folder3及其所有内容、folder2_3_2_1、所有内容和.ignore文件之外的所有内容 folder1 folder2 folder2_1 folder2_2 folder2_3 folder2_3_1 folder2_3_2 folder2_3_2_1 someOtherFil

我见过很多人,他们说的都差不多,但出于某种原因,我无法使用SourceTree让它工作。 我的文件夹结构如下所示,我想忽略除folder3及其所有内容、folder2_3_2_1、所有内容和.ignore文件之外的所有内容

folder1
folder2
   folder2_1
   folder2_2
   folder2_3
     folder2_3_1
     folder2_3_2
          folder2_3_2_1
             someOtherFile1.php
             someOtherFile12php
             someNewFolder
     folder2_3_3
   folder2_4
folder3
.ignore
somefile.php
somefile2.php
在我的。忽略我有以下几点

# Ignore everything
/*

#except for
!.gitignore
!folder3/
!folder2/folder2_3/folder2_3_2/
奇怪的是,如果我不忽略任何东西,并且我能够在我的“未老化文件”面板中看到我的所有文件,如果我右键单击并忽略someOtherFile.php并选择忽略下面的所有内容的选项,它会做相反的事,sourceTree会忽略它的文件夹(即folder2_3_2_1)和其中的所有内容

SourceTree V 2.3.1.0


提前谢谢你

如果你明白你想做什么,你必须把它放进文件中。忽略以下几行:

# Ignore everything
*

#except for
!.gitignore
!folder3/
!folder3/*
!folder2/
!folder2/folder2_3/
!folder2/folder2_3/folder2_3_2/
!folder2/folder2_3/folder2_3_2/*
!folder2/folder2_3/folder2_3_2/*/*
这是因为您必须同时引用目录和内容

细节 折页3 所以,当你写作的时候

!folder3/
您的意思是要考虑
folder3
,但不考虑其内容,而且由于空目录没有版本控制。。。没用

你必须写作

!folder3/
!folder3/*
如果folder3中有子目录,则必须为每个级别添加一行:

!folder3/*/*
!folder3/*/*/*
等等等等

折叠2/折叠2_3/折叠2_3_2/ 同样,在以下情况下:

!folder2/folder2_3/folder2_3_2/
你必须写作

!folder2/folder2_3/folder2_3_2/
!folder2/folder2_3/folder2_3_2/*
和子文件夹

!folder2/folder2_3/folder2_3_2/*/*
但这还不够,因为你必须说,不要忽视:

!folder2/
!folder2/folder2_3/

这是有道理的,明天早上我会试一试。谢谢,可以吗?你需要更多的帮助吗?另请查看其他用户在您的问题评论中建议的链接(可能是重复的问题)。谢谢Carlo,您的解释很到位。