Kirjautuminen

Haku

Tehtävät

Keskustelu: Yleinen keskustelu: Git ja GitHub: Versionhallinta ja varmuuskopiointi

Sivun loppuun

late [22.12.2013 13:18:51]

#

Hei,

Tälläinen lyhyt kysymys, eli aloitin juuri käyttämään git -versiohallintaa (aikaisempaa kokemusta hieman -> svn) .. niin onko kyse nyt samanaikaisesti versiohallinnasta ja oman projektin varmuuskopioinnista? Eli saanko jotenkin haettua sitten tulevaisuudessa eri versioita omasta projektistani?

..lataamalla koneelle tai vastaavaa? Missä nuo Git/ GitHub tiedostot ovat fyysisesti? Käyn juuri Git videokurssia ja ajattelin omaan mini projekteihini ottaa mukaan versiohallinnan ja muutenkin muutoksien kommentoinnin. Lyhyesti tähän loppuun Git vaikuttaa paljon mukavemmalta kuin SVN.

Metabolix [22.12.2013 13:33:30]

#

Git on versionhallintaohjelma. Git sisältää myös toimintoja, joilla voi lähettää projektin muutoksia muille käyttäjille tai ottaa vastaan muiden käyttäjien muutoksia projektiin. Git ei itsessään luo mitään ulkopuolisia varmuuskopioita, eli jos kovalevysi hajoaa, projekti on mennyttä. Kuitenkin Git – kuten mikä tahansa versionhallintaohjelma – säilyttää vanhat versiot projektista, joten jos vahingossa vaikka poistat jonkin tiedoston, pystyt palauttamaan sen. Toisin kuin SVN, joka vaatii palvelimen, Git toimii lähtökohtaisesti kokonaan omalla koneellasi, ellet erikseen käske sen lähettää versioita johonkin muualle.

GitHub sen sijaan on palvelu, johon voi tallentaa Gitillä projektinsa. Silloin projekti on julkisesti saatavilla (ellet maksa yksityisestä projektitilasta) ja siitä on siis ikään kuin varmuuskopio netissä GitHubin palvelimilla. Yhtä hyvin voit kuitenkin tehdä itse varmuuskopiot omalle palvelimellesi tai muistitikulle. GitHubissa on kuiteknin joitain hyödyllisiä työkaluja kuten mahdollisuus raportoida bugeista.

late [22.12.2013 14:04:07]

#

Hmm.. suurkiitos tiedoista. Olisi mukava mielenkiinnosta kokeilla GitHubbia. Tietty maksaa aika paljon jos haluaa yksityisen "tilin". Eli jos tekee esim. asiakastyön niin voisi tallentaa esim. omalle koneelle.

..minulla on tuo Time Capsule (2Gt) joka aika mukavasti ottaa varmuuskopioita tietokoneesta päivittäin. Juu joku taisi sanoa "keskity oleelliseen", joten yritän hyötyä versiohallinnasta enkä juuttua siihen.

Nykyään kun teen pientäkin projektia niin yritän siinä samassa hieman dokumentoida sitä mitä olen tekemässä. Tämä on helpottanut huomattavasti. Myös se että hajottaa esim. web-sivusto projektin ensiksi palasiin ja koodaa osista omat prototyypit ja valmiit "palikat" helpottaa.

---

Eli.. yritän toimia suunnilleen näin:

A.) Web-sivusto pohja
b.) Sisääkirjautuminen
c.) Footer

Sitten Git / GitHub

A
B
C
A B C

Eli 4 erilaista versiota web-sivustosta. Tosin tarkoitus on tehdä palikoista omat kokonaisuudet jotka voi sitten yhdistää. Jos "asiakas" ei haluaisi jotain osaa/ palikkaa mutta jonkun muun niin voisin tehdä näin:

A
C
D

Asiakas saa -> A C D -version web-sivustosta! Ok, tutkin tuon GitHub tilin perustamisen. Olen vihdoin näkemässä pientä valoa pitkän ja pimeän tunnelin päässä. Yritän hahmottaa sitä miten oma kehitysympäristö ja tehokas työnkulku vaikuttaa web-kehittämiseen. Vaikkapa nyt siihen että minun pitäisi rakentaa responsiivinen web-sivusto tyhjästä. Missä pohja ja mitä tehdään seuraavaksi... Lisäksi on mukava jos on jokin edes pieni dokumentaatio projektista jos sen pariin pitää esim. vuoden sisällä palata. Voi nopeasti virkistää muistia, + tietenkin hyvä koodin kommentointi.

Sampe [22.12.2013 14:36:51]

#

Jos haluaa tehdä yksityisiä repositoryja, niin yksi hyvä vaihtoehto on Bitbucket. Tuonne saa sekä julkisia että yksityisiä repoja, ja issue tracking sekä wiki ovat saatavilla myös ilmaiskäyttäjille.

Metabolix [22.12.2013 17:14:53]

#

Jos haluaa tehdä yksikseen tai firman sisäisesti projektia, ei tarvitse käyttää lainkaan mitään nettipalvelua vaan voi pitää versionhallinnan omalla koneella tai firman palvelimella.

late kirjoitti:

Nykyään kun teen pientäkin projektia niin yritän siinä samassa hieman dokumentoida sitä mitä olen tekemässä.

Myös dokumentaatiota usein pidetään koodin kanssa samassa versionhallinnassa ja päivitetään yhtä aikaa koodin kanssa. Jos halutaan jostain syystä palata vanhaan versioon, saadaan samalla vanhan version dokumentaatio.

late [22.12.2013 17:33:14]

#

Okei, no millä tuo dokumentaatio sitten kannattaa tehdä? Teen itse ohjelmalla (Pages) Microsoftin vastaava olisi (Word)...?

Metabolix [22.12.2013 17:40:03]

#

Riippuu, mitä dokumentoit. Koodin luokkia ja funktioita koskeva dokumentaatio kirjoitetaan yleensä koodin kommentteihin esimerkiksi Doxygen-ohjelman käyttämässä muodossa, jolloin dokumentaatiosta voi generoida helposti siistit nettisivut. Epämääräisemmät suunnitelmat voi pitää tavallisissa tekstitiedostoissa (*.txt), jos ei ole erityistä tarvetta käyttää muuta ohjelmaa. Versionhallinnasta on eniten hyötyä tavallisen tekstin kanssa, koska silloin versionhallinta pystyy näyttämään eri versioiden väliset muutokset. Binääritiedostoista kuten Wordin tiedostoista muutoksia ei pysty Gitillä katsomaan.

Voisitko yrittää käyttää sulkuja jotenkin järkevästi? Nyrkkisääntönä voi pitää, että tekstin pitää olla looginen, vaikka kaikki suluissa oleva poistettaisiin. Sulkuihin laitetaan siis sivuhuomioita, jotka ovat niin merkityksettömiä, ettei niitä sovi laittaa edes sivulauseiksi.

late [22.12.2013 17:46:02]

#

Ok, juu suomenkielen taitoni on järkyttävä, mutta yritän parantaa. Jos joku ehtii tutkia commitointi toimii, mutta saan tällaisen virheilmoituksen:

warning: push.default is unset; its implicit value is changing in
Git 2.0 from 'matching' to 'simple'. To squelch this message
and maintain the current behavior after the default changes, use:

  git config --global push.default matching

To squelch this message and adopt the new behavior now, use:

  git config --global push.default simple

See 'git help config' and search for 'push.default' for further information.
(the 'simple' mode was introduced in Git 1.7.11. Use the similar mode
'current' instead of 'simple' if you sometimes use older versions of Git)

Metabolix [22.12.2013 17:51:11]

#

Tuossahan lukee suoraan, mistä on kyse ja mitä pitää tehdä: erään asetuksen oletusarvo on muuttumassa, ja jos haluat saada tuon ilmoituksen pois, aja jompikumpi näytetyistä komennoista. Ensimmäinen komento laittaa asetustiedostoon asetuksen nykyisen oletusarvon ja jälkimmäinen tulevan oletusarvon. Itse valitsin jälkimmäisen vaihtoehdon, ja se on toiminut hyvin.

late [22.12.2013 18:13:53]

#

Juu.. tuota englantia pitää harjoitella lisää. Nyt toimii kaikki, kiitän.

Macro [22.12.2013 18:53:47]

#

Bitbucket on ihan kätevä, kun saa omat yksityiset projektinsa sinne tallennettua eikä tarvitse repositoreja luoda käsin komentoriviltä. Syötät vaan projektin nimen ja tunnukset, jolla haluat sitä käyttää, minkä jälkeen olet valmis käyttämään sitä vaikka IDE:stäsi.

Itse käytän SVN:ää. Omalla serverillä on VisualSVN ja Eclipsestä sitten käytän Subversiveä SVN-yhteyden muodostamiseen. Ei tarvitse kikkailla komentorivillä.

late [22.12.2013 19:02:21]

#

Macro kirjoitti:

.....Ei tarvitse kikkailla komentorivillä.

Yritän totutella päätteen käyttöön, MACissa Terminal. Olen huomannut että valkoinen pohja, jossa teksti mustalla alentaa rimaa hyödyntää tätä kummalista vimpainta. Muutenkin kommentointi ja asentaminen on todella nopeaa ja kätevää.

Esim. GitHubista hain gui sovelluksen koneelle, mutta vain mielenkiinnosta. Käytän mielelläni päätettä versiohallinnassa. Sitäpaitsi jos puhutaan projektista, jossa on 5 henkeä niin on aika kätevä tutkia muiden tekemiä muutoksia, kommentteja jne.

Olen itse siinä käsityksessä että SVN on vanhanaikaisempi ja siinä tulee enemmän konflikteja. Git ja GitHub ovat toistaiseksi olleet todella helppokäyttöisiä. Käsittääkseni Linus Torvalds tuonkin (GitHub) kehittänyt.

Metabolix [22.12.2013 19:08:24]

#

Macro kirjoitti:

Itse käytän SVN:ää. – – Ei tarvitse kikkailla komentorivillä.

Ihan yhtä lailla niitä graafisia käyttöliittymiä on myös Gitille. Lisäksi Git on paljon joustavampi ja monipuolisempi; itse en ikipäivänä enää palaisi vapaaehtoisesti Subversioniin. Esimerkiksi eri kehityshaarojen luominen, niiden välillä liikkuminen ja viime kädessä niiden yhdistäminen ovat todella arvokkaita ominaisuuksia.

late kirjoitti:

Käsittääkseni Linus Torvalds tuonkin (GitHub) kehittänyt.

Älä nyt sekoita Gitiä ja GitHubia, ne ovat kaksi täysin eri asiaa. Linus on kehittänyt Gitin (alunperin; nykyään sitä ylläpitävät muut), sen sijaan GitHub on aivan erillinen projekti.


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta