如何在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.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

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

frontend/node_modules

在Unix上:

touch .gitignore

在Windows上:

echo > .gitignore

在终端中执行的这些命令将在当前位置创建.gitignore文件。

然后只需将信息添加到此.gitignore文件(例如使用Notepad++),哪些文件或文件夹应被忽略。保存更改。就是这样:)

更多信息:.gitignore

在Windows和Mac上,如果要忽略当前目录中名为Flower_Data_folder的文件夹,可以执行以下操作:

echo Flower_Data_Folder >> .gitignore

如果是名为data.txt的文件:

echo data.txt >> .gitignore

如果是类似“Data/passwords.txt”的路径

echo "Data/passwords.txt" >> .gitignore.