Git ignore - 应用程序日志

时间:2012-05-27 10:18:18

标签: git yii gitignore

我有一个非常奇怪的问题,我希望知道你对此的建议。

有时,当我将更改推送到REMOTE服务器时,不会显示更改。 我做ssh到远程机器,我做了git status,我看到了:

  

已修改:app / runtime / application.log

问题是,所有目录,现在还有特定文件,都是.gitignore的目标。

/nbproject/
/app/runtime/
/public_html/assets/
/app/runtime/application.log*
/app/runtime/error.log*

没有ftp直接完成,只使用推拉。

也许它们是在实际网站上写入app/runtime/application.log的内容,因此application.log与存储库中的内容不同,当发生这种情况时 git拒绝提取 ,因为它会将application.log覆盖为旧版本。

这可能发生在同一目录上的许多其他文件中。应用程序运行的那一刻,可以由实时站点创建的文件。

我的问题是,我们怎样才能避免这种情况? 为什么.gitignore似乎在这里没有效果?

ps - 如果我需要提供更多详细信息,例如服务器挂钩或其他什么,请告诉我。

2 个答案:

答案 0 :(得分:7)

在应用app/runtime/application.log规则之前,您已将.gitignore添加到git gitignore不会影响git对现有文件的认知,只会影响新创建的文件。

git rm --cached app/runtime/*应该从git的索引中删除日志。

答案 1 :(得分:2)

来自man gitignore

  

gitignore文件指定git应忽略的故意未跟踪文件。 git已经跟踪的文件不受影响

因此,如果您的application.log文件已添加到存储库,则gitignore将不执行任何操作。

解决方案是从存储库中删除这些文件。你真的需要同步日志文件吗?

git rm --cached app/runtime/application.log

等等。