Git

Wikipedia
Loikkaa: valikkoon, hakuun
Git
Git-logo.svg

Kehittäjä Linus Torvalds, Junio Hamano
Kehityshistoria
Vakaa versio 1.9.3 / 9.5.2014
Tiedot
Ohjelmistotyyppi versionhallinta
Alusta Linux, POSIX, Microsoft Windows, OS X
Lisenssi GPLv2
Verkkosivu git-scm.com

Git on versionhallintaohjelmisto, joka on suunniteltu toimimaan hajautetusti ja mahdollisimman tehokkaasti.

Git on suunniteltu POSIX-yhteensopiville käyttöjärjestelmille (mukaan lukien Linux ja Mac OS X). Se toimii myös Microsoft Windowsilla, mutta vaatii joko erityisen "msysgit"-version (joka pohjautuu MinGW MSYSiin) tai Cygwin-järjestelmän. Unix-suunnittelufilosofian mukaisesti Git ei ole yksittäinen sovellusohjelma, vaan koostuu suuresta joukosta pienempiä sovelluksia, joista kukin toteuttaa yksittäisiä toimintoja.

Gitin kaltaisia, avoimen lähdekoodin hajautettuja versionhallintaohjelmistoja ovat myös Mercurial ja Bazaar.

Historia[muokkaa | muokkaa wikitekstiä]

Linux-ytimen versionhallinta oli aluksi toteutettu suljetun BitKeeper-ohjelmiston avulla. BitMover, Inc., joka kehitti BitKeeperiä, antoi ohjelman ilmaiseen käyttöön avoimen lähdekoodin projekteille. Vuonna 2005 tämä kuitenkin lopetettiin, joten Linus Torvalds kirjoitti oman hajautetun versionhallintajärjestelmän BitKeeperin korvaajaksi, koska Linux-ytimen kehitystiimin tarpeet täyttävää avoimen lähdekoodin järjestelmää ei ollut olemassa. "Git" tarkoittaa isobritannialaisessa slangissa "ääliötä"; Linus Torvalds sanoi "I'm an egotistical bastard, and I name all my projects after myself. First Linux, now git." ("Olen itsekeskeinen paskiainen, joten nimeän kaikki projektit itseni mukaan. Ensin Linux, nyt git.")

Gitin nykyinen ylläpitäjä on Junio Hamano.

Erityisominaisuudet[muokkaa | muokkaa wikitekstiä]

Gitin suunniteltiin olemaan mahdollisimman nopea (Linux-ytimeen tulee valtava määrä muutoksia), tukemaan hajautettua työskentelyä, ja estämään datan virheellisyys sekä katoaminen. Sen oli myös kyettävä hallitsemaan Linuxin valtavaa kokoluokkaa, toisin kuin monet muut järjestelmät, jotka eivät skaalaudu isojen hakemistopuiden hallintaan. Git suunniteltiin myös eri kehityshaarojen tehokkaaseen ja helppoon hyödyntämiseen. Käyttöliittymänsä puolesta Git on suunniteltu Unixin periaatteiden mukaiseksi "työkalusarjaksi"; Git on oikeastaan joukko ohjelmia, joista kukin tekee yhden tietyn asian hyvin.

Tiedostojen uudelleennimeäminen Gitissä on ns. implisiittistä (eksplisiittisen sijaan). CVS:n yleisenä heikkoutena pidetään sen tapaa tunnistaa koko päivityshistoria tiedoston nimen mukaan, jolloin tiedoston siirtäminen tai uudelleennimeäminen ei ole mahdollista joko keskeyttämättä tai uudelleennimeämättä sen historiaa, tehden siitä virheellistä. Useimmat uudemmat versionhallintajärjestelmät antavat tiedostoille oman pysyvän nimensä (vähän kuin tiedostojärjestelmistä tutun inoden). Git ei käytä tämänkaltaisia tunnisteita,[1][2] sillä koodia joudutaan välillä paloittelemaan tai yhdistelemään uudelleennimeämisen lisäksi.[3] Tämän ylöskirjaaminen pelkkänä uudelleennimeämisenä jäädyttäisi historian jälleen virheelliseksi, mistä johtuen Git tunnistaa uudelleennimeämiset automaattisesti tallennehistoriaa selaamalla sen sijaan, että se kirjattaisiin jo tallennushetkellä.[4] (Yksinkertaistettuna version N jokin tiedosto on uudempi kuin N-1:n. Kun N-1:stä ei löydy kyseisen nimistä tiedostoa, Git etsii tiedostoa joka löytyy vain tästä versiosta, ja on sisällöltään mahdollisimman samanlainen uudempaan verrattuna.) Tämä vaatii kuitenkin luonnollisesti enemmän säikeitä (kuormittaen siten prosessoria) sekä monenlaisia asetuksia kontrolloimaan heuristiikkaa.

Gitin on myös päätetty olevan seuraamatta tyhjiä hakemistoja. Tästä syystä pelkkien hakemistojen seuraamiseen on kansioon luotava aina vähintään yksi tyhjä tiedosto (esim. .gitignore[5]).

Lähteet[muokkaa | muokkaa wikitekstiä]

Aiheesta muualla[muokkaa | muokkaa wikitekstiä]