如何通过.gitignore最终忽略所有子目录中的文件

时间:2014-04-13 19:35:48

标签: git gitignore git-add rabbitvcs

我知道有很多重复的问题,但我很困惑。我应该承认我对Git完全陌生。我正在使用RabbitVCS,但是,我手动使用gedit编辑.gitignore文件。这就是我所做的:

  1. 我在Github中创建了一个存储库。
  2. 我使用RabbitVCS在我的本地计算机上克隆它。
  3. 我已将项目的所有文件和文件夹粘贴到存储库中。
  4. 我在存储库的根目录中创建了一个.gitignore文件,其中包含以下模式:*~
  5. 我还没有提交任何内容

    我想忽略根目录和子目录中的所有~和其他临时文件。它忽略root中的所有文件,但对子目录没有影响。当我想使用RabbitVCS提交时,我可以在提交窗口中看到它们。

    我很困惑,因为在Bazaar,我们首先添加文件,然后提交它们。但它Git,似乎我们应该只提交添加新文件!是不是?

    我做错了什么?我应该先提交吗?

1 个答案:

答案 0 :(得分:1)

来自the gitignore manual

  

领先" **"后跟斜杠表示在所有目录中匹配。例如," ** / foo"匹配文件或目录" foo"任何地方,与模式相同" foo"。 " ** /富/栏"匹配文件或目录" bar"直接在目录下的任何地方" foo"。

正如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