2015-10-20 147 views
-1

我有这个问题: 得到了一个$ MYAPP/application/config/database.php文件,其中包含有关如何连接到mysql dbms的所有信息。现在,这些数据在我的本地环境和生产环境之间是不同的。gitignore不工作 - 被忽略?

所以我做了一个.gitignore(在我的git项目的根目录下 - $ MYAPP),它表明忽略来自提交的application/config/database.php文件。

现在,在远程生产环境中,我修改了这个文件。当我对任何(而不是database.php)文件进行任何修改时,如何可能请求一个git状态(其中没有提到database.php),在远程环境中推送并找到与本地环境相同的副本database.php版本? 看来,Git是“无视我的.gitignore文件”

感谢您的帮助 问候。

+0

您能告诉我们.gitignore条目吗?是否已经添加了'database.php'?你在对它做出改变吗? (你可以用'git log --stat'来检查)你的远程环境是如何更新的? (通常这不是由git完成的) – Schwern

+0

这是一个常见问题。这是因为'.gitignore'并不意味着“忽略”。它有两个不同的含义:“关闭未跟踪文件”(在'git status'输出中)和“在添加'所有'文件时不要自动添加*该文件”(例如'git add .' )。如果路径已经在索引中,但这些都不会做任何事情。请参阅http://stackoverflow.com/a/23305143/1256452以了解有关标准“ - 未修改”解决方案的警告。 – torek

+0

[停止跟踪并忽略Git中文件的更改]的可能重复(http://stackoverflow.com/questions/936249/stop-tracking-and-ignore-changes-to-a-file-in-git) – 1615903

回答

0

我猜可以猜到两件事。首先,.gitignore only ignores untracked files。如果之前已添加application/config/database.php,并且您正在冲击git commit -a,则将对其进行更改。

要检查,请运行git log --stat并查看是否更改为application/config/database.php。如果是这样,那么文件已经被添加,并且你已经提交了更改。要从Git中删除它,但不删除该文件,请使用git rm --cached application/config/database.php

如果是这样,请注意您正在提交的内容。


另一种可能性是这与Git无关。你没有说你的远程环境是如何更新的。如果你有一个安装脚本,它可能是正在做的事情。