Как мне настроить git, чтобы он всегда подписывал теги? - PullRequest
0 голосов
/ 01 июня 2018

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

Есть ли способ настроить GIT так, чтобы он всегда подписывал теги?

Я упоминал, что пытался добавить приведенные ниже хаки в .gitconfig, но это не имело никакого эффекта, теги создавались безподпись, если я не упомянул вручную -s на Cli.

[alias]
tag = tag -s

[tag]
forceSignAnnotated = true

[commit]
gpgsign = true

Ответы [ 3 ]

0 голосов
/ 01 июня 2018
[alias]
tag = tag -s

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

[alias]
stag = tag -s

Что касается

[tag]
forceSignAnnotated = true

, это заставляет аннотированные теги быть подписанными, но вы должны создать аннотированные теги с git tag -a что не намного лучше, чем git tag -s.

0 голосов
/ 29 ноября 2018

Я не знаю о директиве псевдонима, но ваши [tag] и [commit] кажутся правильными, и они работают для меня.Просто убедитесь, что (как Бьорн Реннхак) сказал, что user.signingkey также определен и использует правильный ключ.Также проверьте свою версию git, так как 'forceSignAnnotated' был доступен только в Git версии 2.9.0.

0 голосов
/ 01 июня 2018

Обновление для Git 2.23 (Q3 2019), у вас теперь есть git config tag.gpgSign true!


Оригинальный ответ (июнь 2018)

Пока нетрежим «подписан по умолчанию» для тега git, в документации упоминается :

Когда у вас есть закрытый ключ для подписи, вы можете настроить Git для его использования для подписинастройка параметра конфигурации user.signingkey.

git config --global user.signingkey 0A46826A

По умолчанию git tag в режиме со знаком по умолчанию (-s) будет использовать вашу идентификацию коммиттера (в формеYour Name <your@email.address>) для поиска ключа.
Если вы хотите использовать другой ключ по умолчанию, вы можете указать его в конфигурации хранилища следующим образом:

[user]
    signingKey = <gpg-keyid>

Примечание: если вы создаетеваш тег с опцией -m (tag -m "a comment" myTag), что делает их аннотированными .

С git tag справочная страница :

Если задано -m <msg> или -F <file> и -a, -s и -u <keyid> отсутствуют, -a подразумевается.

Таким образом, вы можете:

  • not определить псевдоним для тега git (не add -s))
  • устанавливается с терминала git config tag.forceSignAnnotated true

Таким образом, любой git tag -m "a comment" myTag вызовет gpgpSign.
Только для аннотированных тегов, но с это текоторые должны быть не только локальными для вашего репо, но и выдавшими , этого должно быть достаточно.

...