Git 理解,忽略

Git 理解,忽略,git,Git,我的根目录中有一个.gitignore文件。规则是忽略所有.txt文件。在我的根目录中,我有两个文件,即something.py和anywhere.txt 在写入.gitignore之后,我创建了anything.txt文件 现在,当我发出git add*(在两个文件中都做了更改之后)时,它抛出以下消息:下面的路径被.gitignore文件anywhere.txt忽略。致命:未添加任何文件 但是,当我显式地添加something.py时,它会被添加 那么,为什么不使用git add*添加.py,

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

在写入.gitignore之后,我创建了anything.txt文件

现在,当我发出git add*(在两个文件中都做了更改之后)时,它抛出以下消息:下面的路径被.gitignore文件anywhere.txt忽略。致命:未添加任何文件

但是,当我显式地添加something.py时,它会被添加


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

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

例如,添加
*.txt
表示您不想添加文本文件。 但它没有提到任何python文件,它们将像往常一样添加

您可以使用
git add-f file\u或\u dir
覆盖
.gitignore
。 如果您在忽略.txt的情况下尝试
git添加某物.txt
,git将警告您并拒绝这样做,除非您使用
-f


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

当您键入命令
git add*
时,shell会将其展开以匹配当前目录中的所有非隐藏文件。在您的例子中,它变成了
git add something.py anything.txt

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


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

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