从git仓库中获取文件并在git中忽略它,但不从文件系统中删除它

5

所以,某个配置文件不知何时进入了我们的git仓库,但我们不想让它在那里。但我们希望它存在于我们各自的系统中。

有没有办法从仓库中删除该文件,而不会在团队成员执行pull操作时从他们各自的仓库中删除该文件?

非常感谢!


1
这似乎是Git哲学上的一个缺陷,但我不认为有任何方法可以解决这个问题。你当然可以从代码库中删除文件而不从工作目录中删除它(git rm --cached),但每当其他人进行拉取操作时,该文件将被删除,正如你所知道的。可能你就没办法了。 - Ethan Brown
1
请尝试访问https://dev59.com/lnM_5IYBdhLWcg3w-4dg?rq=1或https://dev59.com/-nA75IYBdhLWcg3wZ4Fr?rq=1。 - ellotheth
1
发送电子邮件给你的同事,告诉他们在拉取文件之前备份文件(咳咳...)。并安装 pre-receive 钩子(http://criticallog.thornet.net/2011/06/02/running-php-linter-before-pushing-changes-to-a-git-repository/)以防止再次发生这种情况... - Penghe Geng
1个回答

2

您需要使用以下命令从代码库(而不是工作树)中删除它:

git rm --cached

请告诉你的同事,在第一次同步(拉取)他们的代码库时进行备份,因为 Git 会删除它。
否则,即使文件在 .gitignore 中存在,当该文件是仓库的一部分时,Git 仍然会检测到更改。


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