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


当前回答

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

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。我只是懒得处理这个测试用例。)

其他回答

若要忽略整个目录,请在其中放置.gitignore的“*”。

例如

示例系统

/root/
    .gitignore
    /dirA/
        someFile1.txt
        someFile2.txt
    /dirB/
        .gitignore
        someFile3.txt
        someFile4.txt

Goal

忽略dirB的内容/

顶级(/root/.gitignore)

你可以在这里“dirB/”

忽略的目录(/root/dirB/.gitignore)

或者你可以在这里“*”

Git在文件系统的每一步都监视gitignore。所以这里我选择dirB/.gitignore作为“*”来忽略dirB/,包括其中的所有文件和子磁盘。

多恩☺️

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

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

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


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

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


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

默认情况下,当文件名为.gitignore.txt时,Windows资源管理器将显示.gitignore。

Git不会使用.gitignore.txt

您不能将文件重命名为.gitignore,因为Windows资源管理器认为它是一个没有名称的gitignore类型的文件。

非命令行解决方案:

You can rename a file to ".gitignore.", and it will create ".gitignore"

如果您想维护一个文件夹而不是其中的文件,只需在文件夹中放置一个“.gitignore”文件,其中包含“*”作为内容。此文件将使Git忽略存储库中的所有内容。但是.gitignore将包含在您的存储库中。

$ git add path/to/folder/.gitignore

如果您添加了一个空文件夹,则会收到此消息(.gitignore是一个隐藏文件)

The following paths are ignored by one of your .gitignore files:
path/to/folder/.gitignore
Use -f if you really want to add them.
fatal: no files added

因此,使用“-f”强制添加:

$ git add path/to/folder/.gitignore -f

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

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