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


当前回答

当其他一切都失败时,尝试编辑文件

/.git/info/exclude

并将您想要的目录添加到文件末尾,如下所示:

# git ls-files --others --exclude-from=.git/info/exclude
# Lines that start with '#' are comments.
# For a project mostly in C, the following would be a good set of
# exclude patterns (uncomment them if you want to use them):
# *.[oa]
# *~
assets/
compiled/

我将文件夹“assets”和“compiled”添加到要忽略的文件和目录列表中。

其他回答

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

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

似乎忽略文件和目录有两种主要方式:

.git忽略将.gitignore文件放置到存储库的根目录中,而不是.git文件夹(在Windows中,确保看到真正的文件扩展名,然后使.gitignore.(结尾处的点为空文件扩展名))生成全局配置~/.gitignore_global并运行git-config--global-core.excludsfile~/.gigignore_global将其添加到git配置中注意:以前跟踪的文件可以通过运行gitrm--缓存文件名来取消跟踪存储库排除-对于不需要共享的本地文件,只需将文件模式或目录添加到文件.git/info/exclude中即可。这些规则未提交,因此其他用户看不到。这里有更多信息。

要在忽略文件列表中设置例外,请参阅此问题。

若要忽略整个目录,请在其中放置.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/,包括其中的所有文件和子磁盘。

多恩☺️

这对一些人来说可能非常明显,但我确实从其他答案中理解了这一点。

在目录中创建.gitignore文件本身没有任何作用。您必须将.gitignore作为文本文件打开,并将希望它忽略的文件/目录写在各自的行上。

所以cd到Git存储库目录

touch .gitignore
nano .gitignore

然后写下要忽略的文件和/或目录的名称及其扩展名(如果相关)。

此外,.gitignore在某些操作系统(例如Mac)上是一个隐藏文件,因此您需要ls-a来查看它,而不仅仅是ls。

我也有类似的问题。我在一个Windows工具链上工作,与Linux人员共享一个存储库,他们很乐意在给定的文件夹中创建具有相同(大小写除外)名称的文件。

其效果是,我可以克隆存储库,并立即拥有数十个“修改”的文件,如果我签入,这些文件将造成破坏。

我将Windows设置为区分大小写,Git设置为不忽略大小写,但它仍然失败(显然是在Win32 API调用中)。

如果我忽略了这些文件,那么我必须记住不要跟踪.gitignore文件。

但我在这里找到了一个好答案:

http://archive.robwilkerson.org/2010/03/02/git-tip-ignore-changes-to-tracked-files/index.html