Jak automatycznie podpisywać zatwierdzenia za pomocą magit?


13

Jestem zainteresowany podpisaniem każdego z moich zobowiązań za pomocą mojego klucza GPG. Ponieważ używam magita do łączenia się z gitem, zastanawiałem się, czy powiedzenie magitowi, aby podpisywał każde zatwierdzenie, jest możliwe (lub przynajmniej możliwe było obejście tego celu).


Czy Git obsługuje nawet podpisywanie zmian? Myślałem, że można podpisać tylko tagi…
— lunaryorn

1
@lunaryorn git commit -S[<keyid>], --gpg-sign[=<keyid>]. Istnieje co najmniej jeden powód do podpisania każdego zatwierdzenia: mieć silniejszy dowód, że zatwierdzenie pochodziło od osoby, o której myślisz, że tak. Podpisywanie tagów pozwala tylko wykryć zmiany historii.
— Nsukami _

@Nsukami_That nie odpowiada na moje pytanie, prawda?
— lunaryorn,

@lunaryorn Przepraszamy, jeśli to nie odpowiada na twoje pytanie. Tak, podpisywanie zatwierdzeń przez
— Nsukami _

Odpowiedzi:


20

W Magit zatwierdzenia są tworzone przy użyciu wyskakującego okienka ( c). To wyskakujące okienko byłoby zatem dobrym miejscem, aby zacząć szukać wsparcia dla gpg. Jeśli to zrobisz, znajdziesz to:

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

Więc wpisz = Si wybierz klucz. Aby uniknąć konieczności robienia tego za każdym razem, gdy tworzysz zatwierdzenie, możesz zapisać wartość tego argumentu (i wszystkich innych aktualnie ustawionych argumentów) za pomocą C-x C-s.

Może za każdym razem będziesz musiał wpisać hasło. Aby tego uniknąć, powinieneś uruchomić gpg-agent i upewnić się, że Emacs o tym wie, np. Używając keychainskryptu powłoki i keychain-environmentpakietu Emacsa.

Zobacz także i ustaw --show-signatureargument w wyskakującym okienku rejestrowania.


Czy to się zmieniło transient?
— tejasbubane

1
Ten argument jest teraz domyślnie ukryty. Przejściowe ogłoszenie wyjaśnia, jak to pokazać, zmieniając „poziom”.
— Tarsius

Na wypadek, gdyby ktoś potknął się tutaj, szukając: magit.vc/manual/transient/Enabling-and-Disabling-Suffixes.html
— tejasbubane

@tarsius Nie wydaje się, że mogę zmienić poziom. Jak mam to zrobić? Dziękuję Ci.
— e18r

Która część dokumentacji, do której odnosi się taasbubane, jest niejasna?
— tarsius

15

Spróbuj tego w swoim $HOME/.gitconfiglub swoim.git/config

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

Następnie po prostu popełnij jak zwykle.


Ta odpowiedź ma tę zaletę, że można ustawić klucz dla repozytorium. Wygląda na to, że =Sopcja magit ustawia klucz $HOME/.gitconfig, tak samo dla wszystkich twoich repozytoriów.
— ph0t0nix
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.