如何在SourceTree中用git仓库忽略文件夹中的所有文件?

我有一个用SourceTreepipe理的Bitbucket Git存储库。

我有2个文件夹,我想提交,但我需要忽略这些文件夹中的所有文件,因为它们只包含临时文件。

我怎样才能做到这一点?

将此添加到.gitignore:

* !.gitignore 

对于SourceTree用户:如果你想忽略一个特定的文件夹,只需从这个文件夹中select一个文件,右键单击它并执行“忽略…”。 您将有一个popup式菜单,您可以忽略“忽略下面的所有内容”

第一个菜单

第二个菜单

右键点击文件 – >忽略 – >忽略下面的所有内容。
如果“忽略”选项变灰,则:
1.第一阶段档案
2.右键单击 – >停止跟踪
3.该文件将显示在带有问号的窗格中 – >右键单击它 – >忽略
在这里输入图像说明

据我所知,Git不跟踪文件夹,只有文件 – 空文件夹(或所有文件被忽略的文件夹)不能被提交。 如果你需要文件夹,因为你的构build过程中的一些步骤,也许你可以让你的构build工具创build它呢? 或者你可以把一个空的,不重名的文件放在文件夹中并提交。

正如其他人所说:git不会跟踪文件夹,只有文件。

您可以使用这些命令(或同等逻辑)确保存在文件夹:

 echo "*" > keepthisfolder/.gitignore git add --force keepthisfolder/.gitignore git commit -m "adding git ignore file to keepthisfolder" 

该文件的存在意味着任何检出版本库的人都将拥有该文件夹。

gitignore文件的内容将意味着它的任何内容都被忽略

您不需要忽略.gitignore文件本身 。 这是一个曾经犯下的毫无用处的规则。

要么

如果您更愿意将所有忽略定义保留在同一个位置,则可以使用如下所示的内容在项目的根目录中创build.gitignore:

 *.tmp # example, ignore all .tmp files in any folder path/to/keepthisfolder path/to/keepthatfolder 

并确保文件夹存在

 touch path/to/keepthisfolder/anything git add --force path/to/keepthisfolder/anything git commit -m "ensure keepthisfolder exists when checked out" 

“任何事情”都可以是任何事情。 常用的名字是.gitignore,.gitkeep,空的。

在这个问题上至less打了一个小时之后,我提供了这个答案,试图扩展其他人的评论。 要忽略文件夹/目录,请执行以下操作:如果您的项目根目录中没有.gitignore文件(该名称完全是“.gitignore”),则在要排除的文件夹中创build一个虚拟文本文件。 在源树的内部,右键单击它并select忽略。 你会得到一个像这样的popup窗口。

在这里输入图像说明

select“下面的所有内容”,然后从下拉列表中select要忽略的文件夹。 这将在你的根目录下创build一个.gitignore文件,并把文件夹规范放在里面。

如果您的根文件夹中已经存在.gitignore文件夹,则可以按照上面的方法进行操作,也可以编辑.gitignore文件并添加要排除的文件夹。 这只是一个文本文件。 请注意,它在path名称中使用正斜杠,而不是反斜杠,正如我们Windows用户习惯的那样。 我试图在Windows资源pipe理器中手动创build一个.gitignore文本文件,但它不让我创build一个没有名称的文件(即只有扩展名)。

请注意,添加.gitignore和文件规范将不会对已被跟踪的文件产生影响。 如果你已经跟踪了这些,你将不得不停止跟踪​​它们。 (右键单击文件夹或文件,然后select停止跟踪。)然后,您将看到它们从具有绿色/干净或琥珀色/更改图标变为红色/删除图标。 在下一次提交时,文件将从存储库中删除,之后出现一个蓝色/被忽略的图标。 另一个贡献者问为什么Ignore被禁用特定的文件,我相信这是因为他试图忽略已经被跟踪的文件。 您只能忽略具有蓝色问号图标的文件。

如果忽略选项变灰,则必须先停止跟踪文件,然后才能忽略它。 您只需右键点击文件,然后点击“停止跟踪”。

一个蓝色的图标应该出现在旁边。 再次右键单击它,然后单击忽略。

在SourceTree中:只要忽略指定文件夹中的文件,sourcetree会询问您是否要忽略该文件夹中的所有文件,这是完美的!