如何在Windows上使用msysgit忽略Git中的目录或文件夹?


当前回答

只需在项目文件夹中创建.gitignore文件,然后在其中添加文件夹名称,例如:

frontend/node_modules

其他回答

暂时忽略已在git中的目录/文件:

我在一个多项目等级的项目中有很多项目,它们可能需要很长时间才能删除,它们几乎相同但不同。有时我想通过将它们全部删除来将它们从渐变构建中删除。吉特终究能把它们弄回来。然而,我也不希望他们以git状态出现。因此,我使用以下简单程序:;

删除我不想要的文件和文件夹。验证生成仍然有效告诉git暂时忽略已删除的文件(我们可以找回它们)


gitls文件--已删除-z | git更新索引--假定-z不变--标准输入

在你想要他们回来之前,不要带着他们过日子。然后,运行与之前相同的命令,但切换为“假设不变”或“不假设不变”


git ls文件--已删除-z | git更新索引--不假定未更改-z--标准输入

此外,在您的\.git\info项目目录中还有一个排除文件,它实际上与.gitignore(我认为)相同。您可以在其中添加要忽略的文件和目录。

我认为问题是你的工作树是这样的:

a-cache/foo
a-cache/index.html
b-cache/bar
b-cache/foo
b-cache/index.html
.gitignore

…用你描述的.gitignore。这将为您提供git状态输出,如:

$ git status
# On branch master
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#    .gitignore
#    a-cache/
#    b-cache/

…如果index.html文件尚未添加到存储库中。(Git发现缓存目录中有未忽略的文件,但它只报告目录。)要解决此问题,请确保您已添加并提交了index.html文件:

git add *cache/index.html
git commit -m "Adding index.html files to the cache directories"

…然后您的git状态将如下所示:

$ git status
# On branch master
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#    .gitignore
nothing added to commit but untracked files present (use "git add" to track)

(很明显,你也希望提交.gitignore。我只是懒得处理这个测试用例。)

在Windows中,有一个额外的斜线捕捉。排除.gitignore中的单个目录

目录_排除/

将可能工作,但排除所有具有

/

当目录中的文件名带有空格(如my-file.txt)时会导致问题:GitBash用反斜杠(如my\file.txt)转义这些空格,而Git for Windows无法区分/和\。

要排除所有目录,最好使用:

**/

两个连续的星号表示目录内容。

我在Windows资源管理器中使用创建文件时遇到一些问题。在开始时。

解决方法是进入commandshell并使用“edit”创建一个新文件。