Ero sivun ”Git” versioiden välillä

Siirry navigaatioon Siirry hakuun
2 209 merkkiä lisätty ,  8. helmikuuta 2022
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ä ==
143

muokkausta

Navigointivalikko