Есть ли способ установить запасной шаблон git commit?

#git #git-commit

#git #git-commit

Вопрос:

Чтение документов не говорит мне, можно ли это сделать или нет, что указывает мне, что это невозможно сделать, но я хочу посоветоваться с некоторыми более умными людьми. Я думаю, было бы очень полезно указать как шаблон проекта template = .git/gitmessage , так и глобальный шаблон template = ~/.gitmessage для резервного копирования, если проект не существует. Я попытался добавить 2 template записи ~/.gitconfig и указал одну на глобальный шаблон, а другую на локальный шаблон, и это не сработало, независимо от того, в каком порядке я их разместил.

Соответствующая документация:

При редактировании сообщения о фиксации запустите редактор с содержимым в данном файле. Переменная конфигурации commit.template часто используется для неявного предоставления этой опции команде. Этот механизм может использоваться проектами, которые хотят подсказать участникам, что и в каком порядке писать в сообщении. Если пользователь выходит из редактора, не отредактировав сообщение, фиксация прерывается. Это не имеет никакого эффекта, когда сообщение передается другими способами, например, с помощью опций -m или -F.

Ответ №1:

Git имеет два вида параметров конфигурации: параметры, которые могут иметь несколько значений, и параметры, которые могут иметь не более одного значения. Я считаю, что commit.template это последнее.

Общий шаблон для параметров, которые принимают не более одного значения, заключается в том, что файлы конфигурации с более узкой областью действия имеют приоритет над файлами конфигурации с более широкой областью действия. То есть .git/config в репозитории (локальный файл) имеет приоритет над ~/.gitconfig (глобальным файлом), который, в свою очередь, имеет приоритет над /etc/gitconfig (системным файлом).

Если вы хотите установить этот параметр глобально, вы можете сделать это в своем ~/.gitconfig файле, а затем установить параметр для конкретного проекта в файле конфигурации в репозитории. Это должно переопределить значение в вашем глобальном файле и, следовательно, использовать шаблон для конкретного проекта. Для проектов, у которых нет собственного шаблона, вы будете использовать тот, который определен в глобальном файле.