Ero sivun ”Git” versioiden välillä
Siirry navigaatioon
Siirry hakuun
Uudet osiot: muutosten allekirjoittaminen ja allekirjoitusten tarkistaminen
(Uudet osiot: muutosten allekirjoittaminen ja allekirjoitusten tarkistaminen) |
|||
Rivi 293: | Rivi 293: | ||
Paljas repository toimii myös projektin varmuuskopiona, mikäli oma työhakemistosi syystä tai toisesta tuhoutuu. | Paljas repository toimii myös projektin varmuuskopiona, mikäli oma työhakemistosi syystä tai toisesta tuhoutuu. | ||
=== Muutosten allekirjoittaminen === | |||
Kuten osiosta versionhallinnan käyttöönotto mahdollisesti huomattiin, Git ei tarkista sille annettua nimeä ja sähköpostia. Mikäli committin tai tagin tunnistaminen on tärkeää, se on allekirjoitettava joko [[GnuPG|GPG-avaimella]] tai alkaen Gitin versiosta 2.34 [[SSH#Tunnistaminen_avainparilla|SSH-avaimella]]. | |||
Ensin kerrotaan gitille allekirjoitusavain, GPG:n tapauksessa tämä on avaimen pitkä ID, SSH:lla tämä on julkinen avain tai polku siihen, esimerkiksi | |||
$ git config --global user.signingkey ~/.ssh/id_ed25519.pub | |||
SSH:n tapauksessa gitille täytyy myös kertoa SSH:n olevan käytössä | |||
$ git config --global gpg.format ssh | |||
Nyt committia tai tagia luodessa voidaan määrittää allekirjoitus <tt>-S</tt> -lipulla | |||
$ git commit -S -a -m "Luotiin allekirjoitettu commit" | |||
$ git tag -S v2.1 | |||
Gitin voi myös määrittää allekirjoittamaan commitit ja tagit automaattisesti: | |||
$ git config --global git commit.gpgsign true | |||
$ git config --global tag.forceSignAnnotated true | |||
$ git config --global git push.gpgsign if-asked | |||
==== Allekirjoitusten tarkistaminen ==== | |||
Gitillä on monta komentoa allekirjoitusten tarkistamiseksi, esimerkiksi aiemmin mainittu <tt>git log</tt>, jonka voi käskeä näyttämään allekirjoituksen: | |||
$ git log --show-signature | |||
[[GnuPG|GPGtä]] käytettäessä tämä noudattaa sen luottamusmallia, mutta SSH:lle on tehtävä oma <tt>authorized_signers</tt> -tiedostonsa ja kerrottava git:ille mistä se löytyy. Tämä sisältää käyttäjän | |||
sähköposti-osoitteen (tai osan sitä, <tt>*</tt> merkki sallii kaiken, julkisen avaimen ja mahdollisesti kommentin. | |||
Lisätään esimerkiksi Oskun julkinen avain: | |||
$ echo "osku@linux.fi ssh-ed25519 pitkaMerkkijonoJossaOnVahanKaikkeaMuutaKuinAakkosia" >> ~/.ssh/authorized_signatures | |||
Kerrotaan Gitille mistä tämä tiedosto löytyy | |||
$ git config --global gpg.ssh.allowedSignersFile ~/.ssh/allowed_signers | |||
Nyt git kertoo | |||
$ git log | |||
commit 9c5cc04010c91cf560e097c69e5c53f6a51d30ef | |||
Good "git" signature for osku@linux.fi with AVAIMENTYYPPI key SHA256:avaimenSormenjälkiSHA256Tiivisteenä | |||
Author: Osku Ohjelmoija <osku@linux.fi> | |||
Date: Fri Oct 23 23:39:56 2009 +0300 | |||
== Graafisia Git-käyttöliittymiä == | == Graafisia Git-käyttöliittymiä == |