Ero sivun ”Git” versioiden välillä

Siirry navigaatioon Siirry hakuun
3 681 merkkiä lisätty ,  23. lokakuuta 2009
alkua
(Torvalds kehitti perusrakenteet mutta varsinainen versionhallinnan käyttöliittymä on muiden tekoa)
(alkua)
Rivi 1: Rivi 1:
Git on hajautettu [[versionhallintajärjestelmä]], jonka kehityksen aloitti Linus Torvalds Linuxin [[ydin|ytimen]] kehitystä varten. Se korvasi ytimen kehityksessä suljetun lähdekoodin BitKeeperin.
Git on hajautettu [[versionhallintajärjestelmä]], jonka kehityksen aloitti Linus Torvalds Linuxin [[ydin|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 <tt>[[gcc]] hello.c -o hello</tt>):
#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 <tt>.git</tt> 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 <tt>git add</tt>:
$ 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ömuuttuja]]ssa EDITOR määritettyyn tekstieditoriin tiedoston, jossa #-merkeillä alkavilla riveillä lyhyesti kuvattu tehtävät muutokset. Tässä tapauksessa ilmoitetaan uusista tiedostoista <tt>hello.c</tt> ja <tt>README</tt>. 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 <tt>hello.c</tt> ei ole standardin mukainen eikä se [[kääntäminen|käänny]] suoritettavaksi ohjelmaksi. Korjataan tämä ongelma muuttamalla tiedosto muotoon
<tt>hello.c</tt>
#include <stdio.h>
int main() {
  printf("Hei, maailma\n");
  return 0;
}
Tässä on siis muutettu toisella rivillä esiintyvä <tt>void</tt> muotoon <tt>int</tt> ja lisätty toiseksiviimeinen rivi <tt>return 0;</tt>.
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 <tt>hello.c</tt> 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==
==Aiheesta muualla==

Navigointivalikko