2015-10-20 2 views
-1

У меня эта проблема: получил файл под $ MYAPP/application/config/database.php, который содержит всю информацию о том, как подключиться к mysql dbms. Теперь эти данные различаются между моей локальной средой и производственной средой.gitignore не работает - игнорируется?

Итак, я создал .gitignore (под корнем моего проекта git - $ MYAPP), который указывает на игнорирование файла приложения/config/database.php из коммитов.

Теперь, в удаленной производственной среде, я изменяю этот файл. Как возможно, что, когда я делаю ЛЮБОЙ модификацию файла ANY (а не database.php), запрашивает статус git (где не указан database.php), push и в удаленной среде я нахожу ту же копию своей локальной среды Версия базы данных. Кажется, что git «игнорирует мой файл .gitignore»

Спасибо за помощь С уважением.

+0

Можете ли вы показать нам запись .gitignore? Добавлен ли 'database.php'? Вы совершаете изменения? (Вы можете проверить с помощью 'git log --stat') Как обновляется ваша удаленная среда? (Обычно это не выполняется git) – Schwern

+0

Это обычная проблема. Это связано с тем, что '.gitignore' вовсе не означает« игнорировать ». Вместо этого он имеет два разных значения: «заткнись в нетрезвом файле» (в 'git status' output) и« не добавляйте * этот * файл при добавлении «всех» файлов »(например, в« git add. »). Если путь уже находится в индексе, ни один из них ничего не делает. См. Http://stackoverflow.com/a/23305143/1256452 для предостережений о стандартном обходном пути '--assume-unchanged'. – 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. Вы не говорите, как обновляется ваша удаленная среда. Если у вас есть установочный скрипт, это может быть что-то, что делает.

Смежные вопросы