Szita Balázs
Tárgyak – 2016-2017/2. félév
A fenti linkek egy-egy git repositoryra mutatnak. A git repository tartalma böngészhető:
- A linkelt webes felületen
- „Project” fül: innen lehet kimásolni a távoli szerver címét
- „Activity” fül: itt látszik, mikor volt a legutolsó commit, és mi volt a tartalma
- „Repository” fül: itt lehet böngészni a repository tartalmát a bal oldalon levő mappa- és fájlnevekre kattintva. A középen levő szövegekre kattintva az adott mappát vagy fájlt legutoljára érintő commithoz ugrunk. A jobb felső sarokban levő gombbal letölthető a repository zippelt formában, amúgy a markdown jegyzetek és a kódok kényelmesen olvashatók ebben a nézetben, a pdf jegyzeteket sajnos le kell tölteni
- Kliensprogram segítségével
- Ajánlott:
- A SourceTree használata: [link]
- Hordozható, ELTE-s gépeken is használható SourceTreehez készült, amit a link által mutatott helyen le is lehet tölteni, de persze a telepítés lépései vonatkoznak a nromál SourceTree-re is
Gites alapfogalmak:
- Git. Egy decentralizált, elosztott verziókezelő rendszer. Fájlokat tölthetünk fel egy szerverre, ami automatikusan hozzárendeli, hogy a feltöltés mikor történt. Később minden „jóváhagyott” szerkesztés után az inkrementum hasonló módon adminisztrálódik. Ezáltal a módosításokat könnyű követni, régebbi verzióra könnyű visszaállni. A szisztéma szöveges fájlokra lett kitalálva – ilyenek a programkódok. A másik ismertebb rendszer a Subversion (SVN)
- Repository. Maga a szerver, ilyen, vagy ehhez hasonló helyen szokás megosztott programokódokat tárolni. A kicheckolt lokális repository ugyanúgy teljes értékű, mint a remote (ez a decentralizáltság). Ezáltal lehet offline is commitolni, illetve nem muszáj minden kódot egy központi szerveren keresztül megosztani, hanem lehet „egymás között is” direktben
- Remote. Távoli (azaz nem lokális) repository. Általában szokás egy ilyet kinevezni „A” repositorynak. Ezt szokás originnek hívni
- Clone. Remote repository másolása lokális szerverként. A lokálison tudunk dolgozni, majd ezt néha szinkronizálni kell az „eredetivel”
- Fork. Egy új projekt indítása, ami egy már létező projekt repositoryjának egy adott állapotán alapul, de egyáltalán nem biztos, hogy ezek után a két projekt között lesz bármilyen kapcsolat. De pull requestek (a gitlab a merge request kifejezést használja erre) útján mindez lehetséges. Open-source projekteknél megszokott
- Revision. Egy-egy verzió. Egy hash-sel azonosítják, az SVN-ben egy inkrementált szám lenne. Minden commit új verziót szül
- Commit. A lokális repositoryban egy adott mennyiségű változtatás (add, remove, modify, rename) jóváhagyása. A git commit -m paranccsal lehet üzenetet fűzni hozzá, ami hasznos, hiszen tudjuk mi is változott
- diff. Főnévként két commit közötti különbség egy megfelelő formátumú fájlban – tulajdonképpen hozzáadott és elvett sorok listája. Igenként jelenti még magának a diffnek a generálását is
- Push. A lokális commitokat felmásoljuk a szerverre
- Pull. A clone (vagyis inkább checkout) óta a távoli repositoryban történt commitok hatásának a helyi repositoryba való másolása
- Fetch. A távoli szerver adatainak újralekérése, frissítése
- Branch. Főnévként egy adott revízióból való leágazás. A leágazás commitjainak múltja meg fog egyezni a source branchével, de utána már külön utakon halad a két ág, azaz ha a leágazott branchre commitolok, a source branchre ez nem lesz hatással. Igeként pedig magát az új branch létrehozását jelenti
- Checkout. Egy adott branchre való átállás. Ha távoli branchről van szó, akkor előbb létrehozza a lokális párját. Ha ez már megvan, akkor előbb az „elavult” lokális branchet kell checkoutlni, majd azt pullolni kell a távoliról
- Merge. Egy speciális commit, ami egy branch beolvasztását jelenti egy másikba. Bár nem kötelező, de általában életszerű, hogy abba a branchbe merge-öljünk vissza, amiből leágaztunk. Fast-forward merge-nek hívják azt, amikor a merge-ölendő branchen semmilyen módosítás nem történt a leágazás óta. Ekkor commit nem keletkezik, mivel nincs tényleges változás, csak a branch címkéje kerül „feljebb” az idővonalon
- Conflict. Ha egy merge során mind a forrás- mind a célbranchben előfordul, hogy ugyanannak a fájlnak ugyanazon sorát módosítottuk a leágazás óta. Ilyenkor a git nem tudja feloldani ezt az ellentmondást, és nekünk kell kézzel ezt megtenni a merge commit véglegesítéséhez
A tananyag letöltéséhez és böngészéséhez a clone és pull parancsok ismeretére van csupán szükség.