如何忽略Sourcetree中具有Git存储库的文件夹中的所有文件?


86

我有一个通过Sourcetree管理的Bitbucket Git存储库。

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

我怎样才能做到这一点?

Answers:


54

将此添加到.gitignore:

*
!.gitignore

13
这应该添加到要跟踪的每个文件夹中。这个文件本身的存在将使git跟踪文件夹(通过跟踪此文件)。该*方法会忽略所有文件,并且该!.gitignore方法不会忽略文件本身
Billy Moon

2
正如Billy Moon解释的那样,谢谢。因此,您可以在目录中创建.gitignore文件。该文件告诉Git忽略什么或不忽略什么。
Gergo Erdosi 2012年

21
您如何在SourceTree中做到这一点?
2012年

1
为此,您不需要SourceTree,它.gitginore是一个常规文件,只需在要忽略其内容的目录中创建它即可。
Gergo Erdosi 2014年

1
正如@ AD7six下文提到的,不要加!的.gitignore的文件,因为它是不必要的。
Xcalibur

155

对于Sourcetree用户:如果要忽略特定文件夹,只需从此文件夹中选择一个文件,右键单击该文件并执行“忽略...”。您将有一个弹出菜单,您可以在其中忽略“忽略下面的所有内容:<您不需要的文件夹>”

第一菜单

第二菜单

如果您将“忽略”选项设为灰色,则必须选择“停止跟踪”选项。之后,该文件将被添加到带有红色背景图标上的减号的暂存文件中,并且未暂存文件列表中的文件图标将变为紫罗兰色背景上的问号。现在,在“未暂存文件”列表中,再次启用“忽略”选项。请按照上述说明进行操作。


14
如果该文件夹已经提交,请先将其删除,然后提交更改,然后按照上述步骤操作。
RMorrisey 2014年

16
我的“忽略”选项显示为灰色。有人知道为什么吗?
Andrei Karcheuski

6
对我来说,忽略也是灰色的。
米卡·佐尔图

忽略添加到git忽略吗?如果不是,为什么不呢?
Joe Lloyd

1
@JoeLloyd是的,它确实添加到git ignore中。您甚至可以像其他任何文件一样提交创建/编辑的git ignore文件。
Kalzem '16

25

右键单击文件→忽略忽略下面的所有内容

如果忽略选项显示为灰色,则:

  1. 首先暂存文件
  2. 右键单击→停止跟踪
  3. 该文件将显示在下面带有问号的窗格中→右键单击它→忽略

在此处输入图片说明


7

据我所知,Git不跟踪文件夹,仅跟踪文件,因此无法提交空文件夹(或忽略所有文件的文件夹)。例如,如果由于构建过程中的某个步骤而需要显示该文件夹,那么也许可以让您的构建工具来创建它?或者,您可以在文件夹中放入一个空的,不可忽略的文件,然后提交。


1
您的意思是,如果我要跟踪文件夹,则必须添加一个“虚拟”文件,而忽略其余文件?:-/
rubdottocom 2012年

2
@rubdottocom:我相信。文件夹之所以存在于git中,仅是因为它们中的文件。为什么需要控制一个空文件夹版本?
Aasmund Eldhuset 2012年

2
跟踪空文件夹有很多原因。您可能希望结帐时准备好该文件夹供人们使用,而不必逐个创建。您的代码可能取决于某个文件夹的存在,例如,一个期望上传的文件夹,如果该文件夹不存在,则无法将文件上传到那里,等等……
Billy Moon

出于@AasmundEldhuset解释的原因,Gergo给出的答案具有正确的解决方案。
比利·穆恩

@BillyMoon:我同意可能有原因;我想知道他的特殊需求是什么,以便我们提出最合适的解决方案。:-) Gergo的技巧很巧妙,尽管正如我所建议的那样,它相当于在文件夹中添加了(或多或少)虚拟文件。不过,他的解决方案更令人讨厌,因此对他+1。
Aasmund Eldhuset 2012年

5

在此问题上打了至少一个小时之后,我提供了这个答案,以尝试扩大其他人的评论。要忽略文件夹/目录,请执行以下操作:如果项目的根目录中没有.gitignore文件(名称恰好是“ .gitignore”),请在要排除的文件夹中创建一个虚拟文本文件。在“源树”内部,右键单击它,然后选择“忽略”。您将看到一个看起来像这样的弹出窗口。

在此处输入图片说明

选择“所有内容”,然后从下拉列表中选择要忽略的文件夹。这将在您的根目录中创建一个.gitignore文件,并将文件夹规范放入其中。

如果您的根文件夹中确实已经存在一个.gitignore文件夹,则可以按照上述相同的方法进行操作,或者您可以编辑.gitignore文件并添加要排除的文件夹。这只是一个文本文件。请注意,按照Windows用户的习惯,它在路径名中使用正斜杠而不是反斜杠。我尝试在Windows资源管理器中手动创建.gitignore文本文件,但是它不允许我创建没有名称的文件(即,仅具有扩展名)。

请注意,添加.gitignore和文件规范对已经被跟踪的文件没有影响。 如果您已经在跟踪这些内容,则必须停止跟踪它们。(右键单击该文件夹或文件,然后选择“停止跟踪”。)然后您将看到它们从具有绿色/干净或琥珀色/更改的图标变为红色/已删除的图标。在下一次提交时,文件将从存储库中删除,然后显示为蓝色/忽略图标。另一个贡献者问为什么对特定文件禁用“忽略”,我相信这是因为他试图忽略已经被跟踪的文件。您只能忽略带有蓝色问号图标的文件。


要创建WIDNOWS的.gitignore文件,使用Git的bash命令'触摸的.gitignore'
Mikee

4

正如其他人提到的那样:git不跟踪文件夹,仅跟踪文件。

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

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

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

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

您不需要忽略.gitignore文件本身。这是一条一旦实施便毫无用处的规则。

要么

如果您希望将所有忽略定义保留在同一位置,则可以在项目的根目录中创建.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,空。


3

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

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


2

忽略源树上的完整文件夹。

   Just Open Repository >Repository setting > Edit git ignore File and 
   you can rite some thing like this :

 *.pdb 
*.bak 
*.dll
*.lib 
.gitignore
packages/ 
*/bin/
*/obj/ 

对于bin文件夹和obj文件夹,只需编写:* / bin / * / obj /


0
  • 忽略Sourcetree中带有Git的文件夹中的所有文件:

忽略Sourcetree中具有Git的文件夹中的所有文件


-2

在Sourcetree中:只需忽略指定文件夹中的文件。Sourcetree将询问您是否要忽略该文件夹中的所有文件。这是完美的!


14
-1没有意义的答案。由于您没有解释如何执行忽略(在sourcetree中)!
工程师
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.