【问题标题】:Understanding .gitignore了解 .gitignore
【发布时间】:2013-05-14 07:15:32
【问题描述】:

我的根目录中有一个 .gitignore 文件。规则是忽略所有 .txt 文件。在我的根目录中,我有两个文件,something.py 和anything.txt。

我在编写 .gitignore 后创建了anything.txt 文件。

所以现在,当我发出 git add * (在对两个文件进行更改之后)时,它会抛出以下消息:您的 .gitignore 文件any.txt 忽略了以下路径。致命:没有添加文件。

但是,当我明确添加 something.py 时,它会被添加..

那么为什么不使用 git add * 添加 .py,即使 .gitignore 文件中没有提到它?

【问题讨论】:

  • 通常人们使用git add .而不是git add *,不会产生此类错误。

标签: git


【解决方案1】:

当您键入命令git add * 时,它会被您的shell 扩展以匹配当前目录中的所有非隐藏文件。在你的情况下,它变成git add something.py anything.txt

Git 认为您想要添加一个文件 (anything.txt) 匹配您的 .gitignore 中的条目 *.txt。这就是它抛出错误的原因。命令失败,没有添加任何文件。

要添加项目中的所有文件,您不能依赖 shell 行为(* 扩展)。您应该使用git add -A 或更好的方法来完成,分别添加每个逻辑文件包。

【讨论】:

    【解决方案2】:

    这正是它的工作原理:.gitignore 是一种简单的机制,可以告诉 git 哪些文件类型不应该添加到您的存储库中。

    例如,添加*.txt 表示您不想添加文本文件。 但是它并没有说python文件的任何内容,它们将照常添加。

    您可以使用git add -f file_or_dir 覆盖.gitignore。 如果你在 .txt 被忽略的情况下尝试 git add something.txt,git 会警告你并拒绝这样做,除非你使用 -f

    使用git add * 将尝试添加当前目录中的所有文件,包括.txt,这将导致警告。您可以使用git add . 来避免这种情况。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-08-22
      • 1970-01-01
      • 1970-01-01
      • 2013-09-08
      • 1970-01-01
      • 2021-12-10
      • 2021-02-07
      • 2019-05-14
      相关资源
      最近更新 更多