如何最终通过.gitignore忽略所有子目录中的文件
我知道有很多重复的问题,但我完全糊涂了。我应该承认我对Git完全是新手。我使用的是RabbitVCS,但是,我使用gedit手动编辑.gitignore文件。这就是我所做的:如何最终通过.gitignore忽略所有子目录中的文件,git,gitignore,git-add,rabbitvcs,Git,Gitignore,Git Add,Rabbitvcs,我知道有很多重复的问题,但我完全糊涂了。我应该承认我对Git完全是新手。我使用的是RabbitVCS,但是,我使用gedit手动编辑.gitignore文件。这就是我所做的: 我已经在Github中创建了一个存储库 我用RabbitVCS在本地计算机上克隆了它 我已将project的所有文件和文件夹粘贴到存储库中 我在存储库的根目录中创建了一个.gitignore文件,其中包含以下模式:*~ 我还没有提交任何东西 我想忽略根目录和子目录中的所有~和其他临时文件。它忽略根目录中的所有文件,但在子目
.gitignore
文件,其中包含以下模式:*~
~
和其他临时文件。它忽略根目录中的所有文件,但在子目录中不起作用。当我想使用RabbitVCS提交时,我可以在提交窗口中看到它们
我很困惑,因为在Bazaar中,我们首先添加文件,然后提交它们。但它是Git,似乎我们应该只承诺添加新文件!是这样吗
我做错了什么?我应该先提交吗?来自:
前导“**”后跟斜杠表示在所有目录中都匹配。例如,“**/foo”匹配文件或目录“foo”,与模式“foo”相同。“**/foo/bar”与目录“foo”下的任何位置的文件或目录“bar”匹配
正如Jan Hudec所写,您只需使用*~
:
$ mkdir test
$ cd test
$ git init
Initialized empty Git repository in /tmp/test/.git/
$ echo '*~' > .gitignore
$ mkdir -p some/deep/directory
$ touch some/deep/directory/test.txt
$ touch some/deep/directory/test.txt~
$ git add some/deep/directory/test.txt*
The following paths are ignored by one of your .gitignore files:
some/deep/directory/test.txt~
Use -f if you really want to add them.
fatal: no files added
你的意思是我应该使用
***~
@阿里:不,你应该只用*~
<代码>**/foo..,与模式foo
相同。您做得对<代码>*~忽略所有以~
结尾的文件。因为不包含/
的模式在文件名上匹配,所以包含/
的模式在路径上匹配。您是如何想到需要做其他事情的?在git中,您必须添加所有要提交的更改。但是,.gitignore
取自工作树。它在不提交的情况下生效。@JanHudec我可以在RabbitVCS的提交窗口中看到被忽略的文件。这就是为什么我认为我需要做点别的。在Bazaar中,当我忽略一个文件时,它不会显示在“添加和提交”窗口中。我想知道Bazaar和Git之间是否有我不理解的区别。您是否也在控制台上的Git status
输出中看到了它们?如果目录中有一些未版本化的文件,但没有版本化的文件,它只显示目录。但如果目录中只有被忽略的文件,则不应显示该文件。