2012-02-13 1 views
1

Сейчас я работаю над проектом с config.py файла, который в репо Git, содержит такие строки:Могу ли я заставить Git игнорировать мои настройки или локальные данные сайта при фиксации?

debug = False 
database = '' 

Но моя локальная рабочая копия имеет эти строки в своем месте:

debug = True 
database = 'sqlite:///site.db' 

Эти строки почти никогда не меняются, но все же каждый раз, когда я фиксирую, я вынужден добавлять каждое изменение вручную, поэтому я могу опустить изменения в config.py из индекса. В идеале я хотел бы найти способ сказать Git игнорировать изменения этих строк или всего файла, но все же включить их в репо, поэтому мой экран git status будет чистым, и я мог бы использовать git commit -a.

Если это невозможно, существует ли рекомендованный рабочий процесс, чтобы избежать этого несоответствия между репо и рабочей копией?

+0

Вы посмотрели добавить [.gitignore] (http://linux.die.net/man/5/gitignore)? – Sjoerd

+0

@Sjoerd Я все еще хочу, чтобы файл отслеживался, а не мои локальные изменения. – zildjohn01

ответ

1

Пробег: git update-index --assume-unchanged config.py. Это сделает git, не замечает изменений в файле , пока вы не проверите другую ветку или не восстановите индекс. Это, к сожалению, лучшее решение, если вам нужен долгосрочный набор изменений в файле, который необходимо отслеживать в репозитории (а не в .gitignore).

Лучшее решение заключается в том, чтобы файл не был отслежен вообще и помещал его в файл .git/info/excludes или .gitignore вашего репозитория.

+1

Спасибо. Этот ответ заставил меня открыть «-skip-worktree», который, кажется, немного более устойчив к сбрасыванию и другим операциям репо. [Эта страница] (http://fallengamer.livejournal.com/93321.html) также упоминает, что она может быть полезной для отслеживаемых файлов конфигурации. Я думаю, что это, вероятно, лучшее решение прямо сейчас. – zildjohn01

+0

@ zildjohn01 Это звучит здорово! Я не знал об этом. – Borealid

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