使用 .gitignore 文件隐藏 appsettings.json 实际上并没有隐藏它

Using .gitignore file to hide appsettings.json does not actually hide it

我有一个正在构建的 C# MVC .Net Core 应用程序,连接字符串位于一个名为 appsettings.json 的文件中,所以我想做的只是将其从我的 git 存储库中排除.我已将以下行添加到 git 忽略文件:

appsettings.json

我也试过:

**/appsettings.json

但这两个似乎都不起作用,我对 appsettings.json 文件所做的更改仍然出现,我是否遗漏了一些基本的东西?

.gitignore 文件添加条目不会删除任何已添加到存储库的文件。您需要手动删除它们。为此,您可以使用 rm 命令:

git rm --cached project/appsettings.json

这是我们在使用 Git 时遇到的对 .gitignore 工作方式的常见误解:.gitignore 将忽略所有尚未被跟踪的文件;实际上,您的 Git 存储库中已经被跟踪的文件不会被您的 .gitignore 设置忽略。

为了满足您的需要,取消跟踪您希望忽略的文件就足够了,即在您的情况下是 appsettings.json 文件。 正如您在问题评论中所报告的那样,该问题已得到解答 here。然后,您的 .gitignore 设置将按您预期的那样工作。

这是官方参考git看here 它说:

The purpose of gitignore files is to ensure that certain files not tracked by Git remain untracked.

To stop tracking a file that is currently tracked, use git rm --cached