Ero sivun ”Git” versioiden välillä
Siirry navigaatioon
Siirry hakuun
Uudet osiot: muutosten allekirjoittaminen ja allekirjoitusten tarkistaminen
p (→Tiedostojen muokkaaminen: syntaksi korjattu) |
(Uudet osiot: muutosten allekirjoittaminen ja allekirjoitusten tarkistaminen) |
||
(6 välissä olevaa versiota 3 käyttäjän tekeminä ei näytetä) | |||
Rivi 23: | Rivi 23: | ||
Luodaan ensin muutama tiedosto projektia varten: | Luodaan ensin muutama tiedosto projektia varten: | ||
hello.c ([[C]]-kielinen lähdekoodi, ohjelma tulostaa ruudulle yhden rivin tekstiä, kääntyy komennolla <tt>[[gcc]] hello.c -o hello</tt>): | hello.c ([[C]]-kielinen lähdekoodi, ohjelma tulostaa ruudulle yhden rivin tekstiä, kääntyy komennolla <tt>[[gcc]] hello.c -o hello</tt>): | ||
< | <syntaxhighlight lang="C"> | ||
#include <stdio.h> | #include <stdio.h> | ||
void main() { | void main() { | ||
printf("Hei, maailma\n"); | printf("Hei, maailma\n"); | ||
} | } | ||
</ | </syntaxhighlight> | ||
README: | README: | ||
Esimerkkiprojekti, jonka avulla opetellaan Gitin käyttöä | Esimerkkiprojekti, jonka avulla opetellaan Gitin käyttöä | ||
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ä == | ||
Rivi 311: | Rivi 354: | ||
*[[Gitea]] | *[[Gitea]] | ||
*[[GitHub]] | *[[GitHub]] | ||
*[[GitLab]] | |||
*[[Mercurial]] | *[[Mercurial]] | ||
*[[Subversion]] | *[[Subversion]] |