Írta: tom1964h

Branchek létrehozása és kezelése

A távoli és a helyi repóknak több “szobájuk”, azaz helyiségük is lehet. A master a tárolónak a fő produkciós részlege; emellett létezhetnek fejlesztő műhelyek párhuzamosan is: ezek további branch-ek.

A központi repó eleve tartalmazhat többféle branch-et. Te helyileg számos különböző branch-et létrehozhatsz, amelyek mind a master másolatai. Itt kipróbálhatod a fejlesztéseidet, amit majd beolvasztanak a master-be. A lényeg az, hogy a központi repó megfelelő branch-ébe kerüljenek fel a fejlesztéseid.


Egy munkahelyen általában|nagy többségben|jellemzően a következők fajta branch-ek létezhetnek:
  • a master a master branch, ez a produkciós branch (ezt látják később a felhasználók) - ebben találhatók meg a főbb verziók
  • van development branch, dev environment - ez fejlesztői branch, ide pakolják fel a fejlesztők a dolgaikat; ha mindent rendben találnak, átrakják az engedélyezett commit-okat a master branch-be
  • külön tester brach a tesztelőknek
  • speciális brach-ok a cég elkülönített részlegeinek
  • branch-ok a hibajavításhoz
  • lokális branch-variációk: saját gépen létrehozhatok önálló branch-eket; k

Branch hiererchia:

  • alapból a master van a hierarchia csúcsán
  • válthatunk szabadon a branchek között vagy létrehozhatunk újat
  • a HEAD mutatja ezt meg

git branch

Egy új branch-et igen könnyen létrehozhatunk. Terminálban lépjünk át a korábban leklónozott GitTest repóba. Kiderítjük hogy nevezik most és létrehozunk egy fejlesztői branch-ot (ez történetesen kitöröl majd mindent, ezért “clean-up” lesz a neve, de ez ne zavarjon, ugyanilyan erővel létre is hozhatunk új állományokat):

  • git branch tájékoztat, melyik branch-ben vagyunk épp, hol állunk épp; ha utána egy nevet írunk akkor létrehoz egy új branch-ot, azzal a névvel (ami egy teljes másolat lesz)
  • git branch clean_up létrehoztunk egy új repót, clean_up névvel

git checkout

Ha létrehoztuk az új branch-et, akkor szeretnénk dolgozni is benne:

  • git checkout clean_up ezzel átváltunk a clean_up branch-be
  • git branch ezzel ellenőrizhetjük hol vagyunk:
    * clean_up
    master
  • ha most kiadjuk az ls parancsot, akkor láthatjuk, hogy az eredeti master branch teljes másolatában vagyunk épp, hiszen mind a három TXT file megvan a working direktory-ban
  • ha törlünk ebben a branch-ben, akkor ezek a törlések az adott branch-on belül érvényesülnek - egy branchon belül mindent megtehetek, ez a saját játszóterem (sandbox)

git rm

A demónak megfelelően töröljünk mi is ebben a clean_up branch-ben, majd tegyük stage-re és commit-oljuk is el:

  • git rm *.txt törli a megjelölt file-t vagy file-okat (játszanak a wildcard karakterek) - ezzel fizikailag is törlünk, a git tájékoztat minket miket töröltünk, plusz stage-re is rakja a módosításokat
  • git status látható a törölt elemek listája a színpadon, “deleted:” sorokkal jelölve
  • git commit -m "Remove all the texts" ezzel a paranccsal a verziókövetés (a repó) is értesül a törlésről


  • git checkout master ha kontrollképpen átváltunk a masterre, ott az ls parancs hatására látható, hogy nincsenek törölve a master branch-ban az állományok

git merge



Ha a master-ben is át szeretnénk vezetni a változtatásainkat (pl. ott is törölni szeretnénk), akkor a clean_up branch-emet összefésülhetem a master branch-csel:

  • git merge clean-up a master branchen állva meg kell jelölni, mit fésülök össze ezzel :: most már a masterben is törölve lesznek az állományok :: bővebben lásd Git Branching - Basic Branching and Merging
  • git log a git folyamatosan naplózza a változtatásokat

delete a branch

Ha törölni szeretnénk egy branch-et, akkor a -d kapcsoló segíthet (ha már minden commit-ját belefésültem a master branch-be):

  • git branch -d clean_up

Ezek után ne felejtsünk el egy git push parancsot kiadni, hogy a módosításokról a központi repó is értesüljön.

git workflow

Az egyik jó anyag kezdésnek a GitHub workflow bemutatása az Understanding the GitHub flow - menjünk végig a diákon!

További ajánlatok:

  • egy haladóbb és magyarázó anyag a témában a What is a Git workflow?
  • visszatérve a Git etikettre fontos megemlíteni a workflow etikett-et és sok más fontos kérdést (branch vs.fork, rebase vs.merge, commit stílusok és a message-ek, stb) a Git Workflow Etiquette anyagban

Interaktiv Git gyakorlat

A Learn Git Branching oldalon interaktív módon, játékosan (angol nyelven) gyakorolhatjuk a Git használatát. Az alapokat nagyon hamar meghaladja.

forrás learngitbranching.js.org