Git игнорировать изменение файла, но только один раз?

Есть ли в Git какая-то функция "игнорировать один раз"?

Я хочу, чтобы git игнорировал изменение файла только в этот раз, возможно ли это?

У меня есть отслеживаемый файл с переменными, я хочу изменить:

Debug: 'true'

тоже быть "ложным",

  • Я не хочу, чтобы файл показывался при размещении файлов, поэтому я могу выполнить "этап всего".
  • Я также не хочу добавлять файл в.gitignore, потому что файл содержит другие переменные, которые должны быть изменены и должны отслеживаться.
  • Я не хочу выдвигать Debug: "false", потому что это просто заставит других людей иметь противоположную проблему с желанием иметь Debug: "true" без отслеживания.

Это возможно?

Я знаю о:

git update-index --assume-unchanged <file>

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

Могу ли я сначала использовать --assume-неизмененный, затем выполнить изменение, а затем использовать --no-accept-unchanged, чтобы обойти отслеживание?

1 ответ

Нет, ты не можешь этого сделать - как только ты --no-assume-unchanged, Git обнаружит ваше изменение и попытается зафиксировать его, если вы сознательно не избегаете его, никогда не используете commit --auto, а также add --patch всякий раз, когда у вас есть изменения в вашем конфигурационном файле, которые вы хотите зафиксировать. Другими словами, вы можете только автоматически игнорировать файл, вы не можете игнорировать конкретное изменение в файле.

Вы могли бы сделать следующую последовательность:

git update-index --no-assume-unchanged <file>
git add --patch <file>
# pick and choose what you want for yourself only
git commit
git update-index --assume-unchanged <file>

каждый раз, когда ты что-то меняешь, но... что если кто-то забудет?

Типичным способом решения этой проблемы является наличие незафиксированного файла конфигурации (добавлен в .gitignore), сопровождается подтвержденным примером файла конфигурации (обычно с именем *.sample, *.example, *.skeleton или похожие). Таким образом, изменения никогда не передаются вашим соавторам. Когда вы вносите изменения в структуру файла конфигурации, не забудьте также изменить пример, чтобы другие люди могли последовать его примеру. Предполагается, что каждый соавтор скопирует пример для создания реального файла конфигурации, который затем он может настроить для своей среды.

Другие вопросы по тегам