Nykyinen versio |
Oma tekstisi |
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"> | | <<syntaxhighlight lang="C"> |
| #include <stdio.h> | | #include <stdio.h> |
| void main() { | | void main() { |
| printf("Hei, maailma\n"); | | printf("Hei, maailma\n"); |
| } | | } |
| </syntaxhighlight> | | </<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 354: |
Rivi 311: |
| *[[Gitea]] | | *[[Gitea]] |
| *[[GitHub]] | | *[[GitHub]] |
| *[[GitLab]]
| |
| *[[Mercurial]] | | *[[Mercurial]] |
| *[[Subversion]] | | *[[Subversion]] |