Git

Linux.fista
Versio hetkellä 23. lokakuuta 2009 kello 23.50 – tehnyt Heikki (keskustelu | muokkaukset) (alkua)
Siirry navigaatioon Siirry hakuun

Git on hajautettu versionhallintajärjestelmä, jonka kehityksen aloitti Linus Torvalds Linuxin ytimen kehitystä varten. Se korvasi ytimen kehityksessä suljetun lähdekoodin BitKeeperin.

Käyttö

Seuraavassa käydään läpi Gitin peruskäyttö esimerkin avulla luomalla esimerkkiprojektille "hello" versionhallintajärjestelmä.

Versionhallinnan käyttöönotto

Luodaan ensin muutama tiedosto projektia varten: hello.c (C-kielinen lähdekoodi, ohjelma tulostaa ruudulle yhden rivin tekstiä, kääntyy komennolla gcc hello.c -o hello):

#include <stdio.h>
void main() {
  printf("Hei, maailma\n");
}

README:

Esimerkkiprojekti, jonka avulla opetellaan Gitin käyttöä

Seuraavaksi alustetaan Git ajamalla projektin hakemistossa komento

$ git init
Initialized empty Git repository in .git/

Kuten Git ilmoittaa, komento luo työhakemistoon piilotetun alihakemiston .git jonne Git tallentaa kaiken tarvitsemansa datan. Tämän hakemiston sisältöön ei tarvitse kiinnittää huomiota.

Tiedostojen lisääminen

Seuraavaksi lisätään versionhallinnan piiriin alussa luodut tiedostot komennolla git add:

$ git add .

Piste tarkoittaa, että versionhallinnan piiriin lisätään kaikki hakemistossa olevat tiedostot. Yksittäisten tiedostojen lisääminen on myös mahdollista:

$ git add hello.c README

Nyt kun Git tietää, että tällaisia tiedostoja on muokattu, on aika tehdä ensimmäinen "commit", eli siirretään tiedostojen uusin tila versionhallintaan yhdeksi commitiksi:

$ git commit

Komento avaa ympäristömuuttujassa EDITOR määritettyyn tekstieditoriin tiedoston, jossa #-merkeillä alkavilla riveillä lyhyesti kuvattu tehtävät muutokset. Tässä tapauksessa ilmoitetaan uusista tiedostoista hello.c ja README. Tiedostoon voidaan kirjoittaa lyhyehkö lokiin tallentuva kuvaus tehdyistä muutoksista. Risuaidalla alkavat rivit eivät päädy kommenttiin. Kun kommentti on kirjoitettu suljetaan tekstieditori, jolloin muutokset viedään versionhalintaan eli tapahtuu commit:

Created initial commit 9c5cc04: Ensimmäinen commit
2 files changed, 5 insertions(+), 0 deletions(-)
create mode 100644 README
create mode 100644 hello.c

Nyt lokista nähdään, että projektiin on tehty yksi muokkaus:

$ git log
commit 9c5cc04010c91cf560e097c69e5c53f6a51d30ef
Author: Osku Ohjelmoija <osku@linux.fi>
Date:   Fri Oct 23 23:39:56 2009 +0300
   Ensimmäinen commit

Lokiin ilmestyvä nimi ja sähköpostiosoite voidaan asettaa komennoilla

$ git config --global user.name "Oma Nimi"
$ git config --global user.email oma@sähköposti.osoite

Tiedostojen muokkaaminen

Nyt kun ensimmäinen commit on tehty voidaan alkaa kehittämään projektia jolloin näemme, miten Gitin kanssa toimitaan tiedostojen muuttuessa. Tiedosto hello.c ei ole standardin mukainen eikä se käänny suoritettavaksi ohjelmaksi. Korjataan tämä ongelma muuttamalla tiedosto muotoon hello.c

#include <stdio.h>
int main() {
  printf("Hei, maailma\n");
  return 0;
}

Tässä on siis muutettu toisella rivillä esiintyvä void muotoon int ja lisätty toiseksiviimeinen rivi return 0;.

Nyt tehdyt, vielä committoimattomat muutokset nähdään komennolla

$ git status
# On branch master
# Changed but not updated:
#   (use "git add <file>..." to update what will be committed)
#
#  	modified:   hello.c

Eli huomataan, että tiedostoa hello.c on muokattu mutta ei vielä commitoitu. Commit tehdään kertomalla Gitille ensin, että tiedostoa on muokattu, komennolla

$ git add hello.c

ja tekemällä commit tämän jälkeen kuten aluksi

$ git commit

Edellä olevat vaiheet voi myös yhdistää ja suorittaa yhdellä komennolla

$ git commit -a

joka commitoi kaikkiin tiedostoihin tehdyt muutokset.


Aiheesta muualla