Muokataan sivua Git
Siirry navigaatioon
Siirry hakuun
Kumoaminen voidaan suorittaa. Varmista alla olevasta vertailusta, että haluat saada aikaan tämän lopputuloksen, ja sen jälkeen julkaise alla näkyvät muutokset.
Nykyinen versio | Oma tekstisi | ||
Rivi 3: | Rivi 3: | ||
| kuva=[[Kuva:Git-logo.svg]] | | kuva=[[Kuva:Git-logo.svg]] | ||
| kuvateksti= | | kuvateksti= | ||
| lisenssi=[[GPL]] | | lisenssi=[[GPL]] | ||
| käyttöliittymä=teksti | | käyttöliittymä=teksti | ||
| kotisivu=[ | | kotisivu=[http://git-scm.com/ git-scm.com]}} | ||
Git on hajautettu [[versionhallintajärjestelmä]], jonka kehityksen aloitti [[Linus Torvalds]] Linuxin [[ydin|ytimen]] kehitystä varten. Se korvasi ytimen kehityksessä suljetun lähdekoodin BitKeeperin. | |||
}} | |||
== Perusperiaate == | == Perusperiaate == | ||
Rivi 23: | Rivi 20: | ||
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>): | ||
#include <stdio.h> | |||
#include <stdio.h> | void main() { | ||
void main() { | printf("Hei, maailma\n"); | ||
} | |||
} | |||
README: | README: | ||
Esimerkkiprojekti, jonka avulla opetellaan Gitin käyttöä | Esimerkkiprojekti, jonka avulla opetellaan Gitin käyttöä | ||
Rivi 60: | Rivi 55: | ||
$ git config --global user.name "Oma Nimi" | $ git config --global user.name "Oma Nimi" | ||
$ git config --global user.email oma@sähköposti.osoite | $ git config --global user.email oma@sähköposti.osoite | ||
=== Tiedostojen muokkaaminen === | === 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 <tt>hello.c</tt> muotoon | 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ä commitoimattomat muutokset nähdään komennolla | |||
Nyt tehdyt, vielä | |||
$ git status | $ git status | ||
# On branch master | # On branch master | ||
Rivi 208: | Rivi 196: | ||
Kuten aiemmin huomattiin, jokaiseen commitiin viitataan yksilöllisellä mystisellä kirjain- ja numeroyhdistelmällä. Tämän lisäksi Git mahdollistaa tiettyjen commitien nimeämisen selväkielisillä tageilla. Esimerkiksi nimetään alussa ensimmäisen korjauksen jälkeen tehty commit nimelle "v1.0": | Kuten aiemmin huomattiin, jokaiseen commitiin viitataan yksilöllisellä mystisellä kirjain- ja numeroyhdistelmällä. Tämän lisäksi Git mahdollistaa tiettyjen commitien nimeämisen selväkielisillä tageilla. Esimerkiksi nimetään alussa ensimmäisen korjauksen jälkeen tehty commit nimelle "v1.0": | ||
$ git tag v1.0 770194dd647d7f | $ git tag v1.0 770194dd647d7f | ||
Tässä 770194dd647d7f on alkuosa kyseiseen muokkauksen tunniste (ja luultavasti eroaa omassa järjestelmässäsi). Aina, kun Gitissä viitataan tiettyyn muokkaukseen sen tunnisteella | Tässä 770194dd647d7f on alkuosa kyseiseen muokkauksen tunniste (ja luultavasti eroaa omassa järjestelmässäsi). Aina, kun Gitissä viitataan tiettyyn muokkaukseen sen tunnisteella riittää kirjoittaa tunnisteen alkuosaa niin pitkälle, että se yksilöi tietyn tunnistenumeron versiohistoriasta. | ||
Tagitetaan vastaavasti uusin commit versiolle 2.0: | Tagitetaan vastaavasti uusin commit versiolle 2.0: | ||
Rivi 233: | Rivi 221: | ||
$ git show v2.0 | $ git show v2.0 | ||
Tietyn tagin merkkaamasta commitista voidaan aloittaa myös uusi haara: | Tietyn tagin merkkaamasta commitista voidaan aloittaa myös uusi haara: | ||
$ git branch vakaa v1.0 | |||
loisi uuden haaran nimellä vakaa siten, että haarasta löytyisi vain ne commitit, jotka on tehty tähän commitiin mennessä. | loisi uuden haaran nimellä vakaa siten, että haarasta löytyisi vain ne commitit, jotka on tehty tähän commitiin mennessä. | ||
Kehitsyhaaran sisällä voidaan palata tiettyyn vanhaan commitiin komennolla <tt>git reset</tt>: | |||
$ git reset --hard v1.0 | $ git reset --hard v1.0 | ||
palaisi valitussa haarassa tagin v1.0 osoittamaan commitiin. Tämä komento poistaa kaikki tehdyt commitit viitatun commitin jälkeen ja lisäksi paikallisesti tehdyt, versionhallintaan siirtämättömät muokkaukset. Tätä ei pidä käyttää julkisesti käytössä olevassa Git-varastossa. Sen sijaan on käytettävä komentoa <tt>git revert</tt>. | palaisi valitussa haarassa tagin v1.0 osoittamaan commitiin. Tämä komento poistaa kaikki tehdyt commitit viitatun commitin jälkeen ja lisäksi paikallisesti tehdyt, versionhallintaan siirtämättömät muokkaukset. Tätä ei pidä käyttää julkisesti käytössä olevassa Git-varastossa. Sen sijaan on käytettävä komentoa <tt>git revert</tt>. | ||
Rivi 278: | Rivi 265: | ||
Komennolle ei tarvitse antaa parametreja sillä <tt>git clone</tt> on tallentanut Gitin tietokantaan tiedon siitä, mistä alkuperäinen kopio on tehty. Jos versioiden välillä on ristiriitoja ei muutoksista tehdä commitia vaan ristiriidat jätetään käyttäjän ratkaistavaksi kuten <tt>git merge</tt>:n kanssa huomattiin. Kun ristiriidat on korjattu viedään muutokset versionhallintaan tavalliseen tapaan <tt>git commit -a</tt> -komennolla. | Komennolle ei tarvitse antaa parametreja sillä <tt>git clone</tt> on tallentanut Gitin tietokantaan tiedon siitä, mistä alkuperäinen kopio on tehty. Jos versioiden välillä on ristiriitoja ei muutoksista tehdä commitia vaan ristiriidat jätetään käyttäjän ratkaistavaksi kuten <tt>git merge</tt>:n kanssa huomattiin. Kun ristiriidat on korjattu viedään muutokset versionhallintaan tavalliseen tapaan <tt>git commit -a</tt> -komennolla. | ||
== Gitk == | |||
=== | |||
== Katso myös == | == Katso myös == | ||
Rivi 352: | Rivi 271: | ||
*[[CVS]] | *[[CVS]] | ||
*[[Darcs]] | *[[Darcs]] | ||
*[[Mercurial]] | *[[Mercurial]] | ||
*[[Subversion]] | *[[Subversion]] | ||
==Aiheesta muualla== | ==Aiheesta muualla== | ||
* [http://git-scm.com/ Gitin kotisivu] | *[http://git-scm.com/ Gitin kotisivu] | ||
* [http://www.kernel.org/pub/software/scm/git/docs/gittutorial.html Git tutorial] | *[http://www.kernel.org/pub/software/scm/git/docs/gittutorial.html Git tutorial] | ||
* [[wikipedia:Git (software)|Git englanninkielisessä Wikipediassa]] | *[[wikipedia:Git (software)|Git englanninkielisessä Wikipediassa]] | ||
* [http://progit.org/book/ Pro Git, professional version control] -ekirja | *[http://progit.org/book/ Pro Git, professional version control] -ekirja | ||
[[Luokka:Kehitystyökalut]] | [[Luokka:Kehitystyökalut]] |