89

我有一个使用 Sourcetree 管理的 Bitbucket Git 存储库。

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

我怎样才能做到这一点?

4

10 回答 10

158

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

第一个菜单

第二个菜单

如果“忽略”选项灰显,则必须选择“停止跟踪”选项。之后,该文件将添加到暂存文件中,红色背景图标上带有减号,未暂存文件列表中的文件图标将变为紫色背景上的问号。现在在Unstaged 文件列表中,“忽略”选项再次启用。只需按照上述说明进行即可。

于 2014-04-12T20:35:02.473 回答
54

将此添加到 .gitignore:

*
!.gitignore
于 2012-03-12T10:32:49.587 回答
26

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

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

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

在此处输入图像描述

于 2015-09-16T12:45:34.350 回答
7

据我所知,Git 不跟踪文件夹,只跟踪文件 - 因此无法提交空文件夹(或忽略所有文件的文件夹)。如果您由于构建过程中的某些步骤而需要存在该文件夹,也许您可​​以让您的构建工具创建它?或者,您可以在文件夹中放置一个未忽略的空文件并提交。

于 2012-03-12T10:32:55.190 回答
7

在对此进行了至少一个小时的思考之后,我提供了这个答案以尝试扩展其他人的评论。要忽略文件夹/目录,请执行以下操作:如果您的项目根目录中没有 .gitignore 文件(该名称完全是“.gitignore”),请在要排除的文件夹中创建一个虚拟文本文件。在 Source Tree 内部,右键单击它并选择 Ignore。你会得到一个看起来像这样的弹出窗口。

在此处输入图像描述

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

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

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

于 2015-11-21T16:26:07.383 回答
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、空。

于 2012-03-12T10:42:04.630 回答
4

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

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

于 2016-03-14T08:01:02.217 回答
3

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

   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/

于 2018-07-17T18:09:33.357 回答
0
  • 在 Sourcetree 中使用 Git 忽略文件夹中的所有文件:

在 Sourcetree 中使用 Git 忽略文件夹中的所有文件

于 2020-04-13T11:42:14.370 回答
-1

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

于 2013-04-22T06:19:11.380 回答