如何在SourceTree中忽略具有git存储库的文件夹中的所有文件?

时间:2012-03-12 10:30:29

标签: git gitignore atlassian-sourcetree

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

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

我该怎么做?

10 个答案:

答案 0 :(得分:143)

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

First menu

Second menu

如果您将“忽略”选项显示为灰色,则必须选择“停止跟踪”选项。之后,文件将被添加到带有减号的红色背景图标的分阶段文件中,未分期文件列表中的文件图标将更改为紫罗兰色背景上的问号。现在,在Unstaged文件列表中,再次启用“忽略”选项。如上所述。

答案 1 :(得分:55)

将此添加到.gitignore:

*
!.gitignore

答案 2 :(得分:20)

右键点击文件 - >忽略 - >忽略下面的一切。
如果“忽略”选项显示为灰色,则:
1.第一阶段文件 2.右键单击 - >停止跟踪
3.该文件将出现在下面的窗格上,并带有问号 - >右键单击它 - >忽略
enter image description here

答案 3 :(得分:7)

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

答案 4 :(得分:5)

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

enter image description here

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

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

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

答案 5 :(得分:4)

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

您可以确保存在包含这些命令(或等效逻辑)的文件夹:

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

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

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

You do not need to not-ignore the .gitignore file itself。一旦承诺,这条规则根本没有任何意义。

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

答案 6 :(得分:2)

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

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

答案 7 :(得分:1)

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

   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 /

答案 8 :(得分:0)

SourceTree中的

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

答案 9 :(得分:0)

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

Ignore all files in folder with Git in Sourcetree