.gitignore文件没有忽略web.config文件

42
对于我的远程代码库,我想忽略Umbraco网站的web.config文件。 .gitignore 文件位于我的网站根目录下,要忽略的文件web.config也在根目录下。 因此我在.gitignore文件中添加了以下行:
web.config

但每次我将更改推送到远程存储库时,web.config文件也被推送到远程存储库。

我做错了什么?


4
如果这个文件已经被追踪,你必须通过 git rm --cached 命令将其移除。 - Arnaud Denoyelle
1
你把那行代码添加到了web.config文件中?你需要将它添加到gitignore中。 - Jimmy Kane
抱歉,各位,我打错了,当然我已经将这行代码添加到了我的.gitignore文件中。 - Toontje
可能是提交机器特定配置文件的重复问题。 - Senseful
3个回答

70

如果你想忽略一个已经被Git跟踪的文件,那么在添加规则之前,Git将不会忽略该文件。在这种情况下,必须使用 git rm --cached <filename> 命令取消跟踪该文件。

因此,如果你要新忽略这个文件,请运行以下命令:git rm --cached web.config


1
谢谢Gravetii,从舞台中删除web.config就解决了问题。 - Toontje
4
这是否意味着任何重新拉取项目的人都不会得到一个web.config文件? - James
14
如果我想要推送一个裸骨的web.config(例如带有虚假凭据),但是在我的本地环境中有真实值,那我该怎么办? - João Pedro 'jota' Martins
2
使用 [git update-index --assume-unchanged <file>] 命令来忽略文件的改动。要撤销该操作,使用 [git update-index --no-assume-unchanged <file>] 命令。 - Nick Wright
@JoãoPedro'jota'Martins 我会创建一个名为“web.config.template”的文件。 - footose
1
谢谢。我刚刚清除了缓存,现在它可以正常工作了! - Programadores Brasil

18

如果您只想防止本地运行的web.config提交,而不影响未检查的web.config,则在项目文件夹下运行此命令(在cmd或ps中)。

git update-index --assume-unchanged web.config

1
这个答案需要更多的投票。这是正确的答案。 - AbdulG
如何撤销它:https://dev59.com/H2Qm5IYBdhLWcg3w-i9L#17195901 - David Peden

0

首先确保 web.config 相对于解决方案的路径是正确的

例如可能是 /Directory/Web.config

如果您已经对 web.config 进行了更改,除非您执行以下操作,否则它不会被忽略:

  1. 在 cmd 中运行 git rm --cached web.config 以重置跟踪。
  2. 提交将被暂存的 web.config 文件
  3. 在 cmd 中刷新 git 索引 git update-index --really-refresh

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接