Як автоматично підписувати коміти з magit?


13

Мені цікаво, щоб кожен з моїх зобов'язань підписався моїм ключем GPG. Оскільки я використовую magit для взаємодії з git, мені було цікаво, чи можливо сказати magit для підписання кожного комітету (або принаймні якийсь спосіб досягти цього можливо).


Чи підтримує Git навіть підписання зобов'язань? Я думав, що можна підписати лише теги…
lunaryorn

1
@lunaryorn git commit -S[<keyid>], --gpg-sign[=<keyid>]. Існує хоча б одна причина підписання кожного зобов’язання: мати більш вагомі докази того, що вчинення відбулося від людини, яку ви вважаєте, що це зробив. Підписання тегів дозволяє лише виявляти зміни історії.
Nsukami _

@Nsukami_То не відповідає на моє запитання, чи не так?
місячник

@lunaryorn Вибачте, якщо він не відповідає на ваше запитання. Так, Git підтримка зобов’язання підписати
Nsukami _

Відповіді:


20

У програмі Magit комісії створюються за допомогою скопування спливаючого вікна ( c). Тому спливаюче вікно було б хорошим місцем, щоб почати шукати підтримку gpg. Якщо ви це зробите, то ви знайдете це:

=S Sign using gpg (--gpg-sign=)

Тому наберіть = Sі виберіть ключ. Щоб уникнути того, щоб робити це кожного разу, коли ви створюєте команду, ви можете зберегти значення цього аргументу (та всіх інших на даний момент встановлених аргументів), використовуючи C-x C-s.

Можливо, вам доведеться все одно вводити пароль. Щоб уникнути цього, слід запустити gpg-агент і переконатися, що Emacs знає про це, наприклад, використовуючи keychainскрипт оболонки та keychain-environmentпакет Emacs.

Також перегляньте та встановіть --show-signatureаргумент у спливаючому вікні журналу.


Це змінилося в transient?
tejasbubane

1
Цей аргумент зараз приховано за замовчуванням. Перехідне оголошення пояснює, як його показати, змінивши "рівень".
Тарсій

У випадку, якщо хтось тут натикається, дивлячись: magit.vc/manual/transient/Enabling-and-Disabling-Suffixes.html
tejasbubane

@tarsius Я не можу змінити рівень. Як мені почати це робити? Дякую.
e18r

З якою частиною документації, з якою пов'язаний техасбубан, є незрозумілим?
Тарсій

15

Спробуйте це у своєму $HOME/.gitconfigчи вашому.git/config

[user]
    email = YourEmail
    name = YourName
    signingkey = XXXXXXXX
[commit]
    gpgsign = true

Тоді просто виконайте, як завжди.


Ця відповідь має перевагу в тому, що ви можете встановити ключ на сховище. Здається, що =Sпараметр magit встановлює ключ $HOME/.gitconfig, тому той самий для всіх ваших сховищ.
ph0t0nix
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.