Content extract
					
					Mindennapi informatikai alkalmazások – Git, verziókezelés Csorba Kristóf (kristof@aut.bmehu) 2018. ősz  1     “Tudunk gyorsan demózni egyet?” “Persze, nem gond. Most kicsit darabokban van a firmware, de mindjárt feltöltök egy jót.”  2     Hajjaj. 20160905.zip firmware2016szept06.zip f szept8.zip demo szept06.zip demo0 javitva.zip demo1 javitva final.zip demo2 felkesz.zip demo2 ok.zip demo2 final.zip demo2 final megsem.zip 3     Mi a verziókezelés? • Egyéni vagy csapatmunka követése  “zip – email – dropbox” helyett. • Munkakönyvtár elmentett és megosztott állapotai, vissza lehet állítani > legutolsó jó verzió > “a márciusi demó verziója” > ideiglenesen félrerakott verzió  • Párhuzamos munka összefésülése  Git, TFS, SVN, CVS, Perforce 4     Példa: cv4sensorhub repository  5     Centralizált vagy deceltralizált repository  kliens  repository  kliens  kliens  kliens  repository  repository  kliens  kliens  origin 
repository egyéb  repository  6     Mit verziókezelünk? IGEN (ami a fordításhoz kell)  NEM (ami generálódik vagy felhasználó specifikus)  forráskód fájlok (LaTeX diplomaterv) projekt fájlok (pro, pri, sln.) erőforrások: ico, svg, png.  fordítás eredményei *.obj, *.o, *.exe (ami generálódik) Felhasználói beállítások: *.user, *.filter  .gitignore  7     Repository és munkakönyvtár  állapot elmentése repository  munkakönyvtár állapot visszaállítása  8     Commitok és gráfjuk  javítás, HEAD  új funkció  első commit  history: korábbi commitok sorozata 9     Hogyan lesz nekem ilyen? • Git (win: saját shell, parancssoros), GitExtensions, pl. GitHub (student license) https://git-scm.com/  http://code.googlecom/p/gitextensions/ https://github.com/ GitExt vagy clone.  Git  GitHub.com 10     Snippetek • http://bmeaut.githubio/snippets/#git  • Pro.Git könyv • http://training.githubcom/kit/downloads/githubgit-cheat-sheetpdf • Kulcsgenerálás,
GitExtensions, github első lépések https://www.youtubecom/watch?v=OntibzA4038  • Demó (színekkel): https://youtu.be/OOHnNx1M2aY  11     DEMÓ.  12     A commit gráf, alapműveletek  13     A commit gráf (fa, merge commit) • Commitok és szülő(k)  • Branchek (local, remote) • Merge commit  14     Műveletek: Staging, commit (push)  15     A commit message. “töröltem a default.ini-t” “áthelyeztem az InitSettings osztályt” “már majdnem kész.” “javítások” “small fixes” “Új kezdőlap” “ADC init hiba javítva” “#1344 könyvtár jogosultság javítva” Nem mit (az látszik), hanem miért! 16     Branchek, vagyis ágak. • A branch csak egy hivatkozás egy commit-ra.  • A tag is ilyen, csak nem mozog vele tovább • HEAD referencia: amire commitolni fogok branch2 HEAD branch1  “Most akkor hol is tartok/tartunk?” 17     Műveletek: merge Merge commit vagy fast forward.  18     Műveletek: 3-way merge (KDiff3)  19     Rebase f1  f1
 f2  f2  20     Cherry picking f1  f2  f1  21  f2     Mi van a .git könyvtárban?  22     Jogosultság kezelés, remote  23     Git authentikáció • SSH kulcs alapú  • felhasználói név és jelszó SSH kulcs alapú azonosítás nyilvános kulcs és tanúsítvány egyeztetés kliens  session key egyeztetés alkalmazás specifikus kommunikáció (felhasználói név, jelszó)  24  szerver     Remote • Egy vagy több (origin)  • Sima könyvtár (bare) • remote branch létrehozása és törlése (tracking branch) • tag és pusholása Andezit f1 origin/f1  f1 master origin/master  Bazalt  origin origin/f1 master  25  f2 origin/master     Reset  26     Git Flow  27     Feature flagek és master branch • Minden feature branch a master-re mergelődik.  • Feature flag-ek kikapcsolják, ami még nincs készen. > Feature flag logika, pl. publikus, alfa és beta teszterek, A-B testing  28     GitHub.com • Public és private repository (student license)  • Git server •
issue tracker (assignee, labels, milestone)  • Wiki • fork és pull request • Markdown támogatás  29     Snippetek • 0116 GitAuth • 0128 GitHalado • 0129 GitTuzvedelem • 0137 GithubForkPullReq • 0138 GitParancssor • Git első fejlesztési lépések (merge, rebase) https://youtu.be/OOHnNx1M2aY • Github és ssh kulcs https://www.youtubecom/watch?v=OntibzA4038  miniOHV: http://goo.gl/forms/dS5aJN6zHT 30     Félelmek, és amikor megbomlik a rend Mikor tűnik el valami véglegesen?  Lord Meldrum: “A világ megbolondult. Megyek, lefekszem!” 31     Elveszített commit  32     Amend commit Csak ha még nem push-oltunk!  33     git rebase -i HEAD~3 (Squashing)  34