使用gitinore文件隐藏appsettings.json实际上不会将其隐藏

Mar*_*oke 2 git asp.net-mvc json gitignore .net-core

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

appsettings.json
Run Code Online (Sandbox Code Playgroud)

我也尝试过:

**/appsettings.json
Run Code Online (Sandbox Code Playgroud)

但是似乎都行不通,我对appsettings.json文件所做的更改仍然出现,我在这里缺少基本内容吗?

ada*_*ncy 13

该线程中的每个答案都忽略了一点:能够忽略跟踪文件上的更改

不想完全取消跟踪此文件,因为这将使您在下次推送时在远程发送该项目的删除信息,从而删除每个协作者的文件,这显然是您不希望看到的。

你正在寻找的东西实际上在 git 中是完全可能的,虽然有点隐藏:

git update-index --assume-unchanged  <file>
Run Code Online (Sandbox Code Playgroud)

这将精确地忽略跟踪文件上的更改。

现在你可以随意修改你的 appsettings.json 文件,git 不会打扰你,并且当你推送到远程时也不会上传更改。


smn*_*ino 8

关于.gitignore的工作方式,这是一个普遍的误解,在使用Git时,我们在某个时候都遇到了:.gitignore将忽略所有尚未跟踪的文件;实际上,.gitignore设置不会忽略已在Git存储库中跟踪的文件。

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

  • 然后应该尝试一下这个“ git rm --cached &lt;file&gt;”,谢谢:) (2认同)

Dav*_*idG 6

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

git rm project/appsettings.json
Run Code Online (Sandbox Code Playgroud)

  • 没有人要求从项目文件夹中删除文件。OP 只是想将它们从跟踪中删除。不正确的答案。 (2认同)