git: игнорирование файла, * контролируемого * версией - PullRequest
17 голосов
/ 16 февраля 2011

Файл .gitignore позволяет вообще игнорировать файлы из контролирующей их версии.

У нас другая ситуация: мы хотим разместить в репозитории некоторые файлы конфигурации, которые необходимо изменить для каждой машины (например, информация о доступе к базе данных).

Мы хотим распространять их как заполнители, поэтому мы включаем их в репозиторий. Однако позже мы хотим, чтобы любые изменения в них игнорировались для всех разработчиков.

Есть ли способ сделать это?

Примечание:

Вопрос Git: Игнорирование файлов с управлением версиями на самом деле то же самое. Однако ни один из ответов не ответил на вопрос, включая принятый.

Edit:

  • Есть ли способ сделать --assume-неизменным шаблон, а не отдельный файл?
  • Есть ли способ распространения этой команды в репозитории других разработчиков?

Ответы [ 2 ]

47 голосов
/ 16 февраля 2011

Я определяю следующие псевдонимы в моем .gitconfig файле:

[alias]
  ignore = update-index --assume-unchanged
  unignore = update-index --no-assume-unchanged

Это должно делать именно то, что вы хотите: запуск git ignore some-file будет обрабатывать файл как неизменный, независимо от того, что вы с ним делаете,пока вы не запустите git unignore some-file.

3 голосов
/ 16 февраля 2011

Я знаю, что этот вид уклоняется от этой проблемы, но у меня будет файл ".defaults" для каждого, а затем я изменю это. В любом случае это помогает с энергией конфигурации - что, если кто-то, у кого есть пользовательская конфигурация, хочет изменить значения по умолчанию?

Не игнорируйте .defaults, игнорируйте фактическую вещь. Возможно, есть скрипт, который копирует .defaults в обычные, если они еще не существуют.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...