Mi is a git? Csapatban dolgozni Git pro eszközök. Git bevezető. Szabó Adrienn Adatbányászat és Webes Keresés Kutatócsoport



Hasonló dokumentumok
Git verziókezelő. Készítette: Hugyák Tamás. Pannon Egyetem Műszaki Informatikai Kar v1.0

Git verziókövető rendszer alkalmazása a projektek nyomon követésére

Iványi László ARM programozás. Szabó Béla 1. Óra Verziókövetés

Szoftver technológia. Verziókövető rendszerek. Cserép Máté ELTE Informatikai Kar 2019.

Git verziókezelő. Készítette: Hugyák Tamás. Pannon Egyetem Műszaki Informatikai Kar v1.1

Repo(sitory): verziókövetett tároló Commit: egy új verzió rögzítése a repóban Branch: egy ág a verziókövetési fában

A fordítónak mindenhez lehet

A FEJLESZTÉS KIHÍVÁSAI

Szakdolgozati, TDK témajavaslatok

Programozási technológia 2.

Source control systems. Horváth Ernő, Dr. Pozna Claudiu Radu

Tortoise SVN használata. Képes útmutató

Bazaar ismertető. Timár András

OOP és UML Áttekintés

Code review és continous integration toolok BME-MIT

Termék életciklus és a verziókezelés

Térinformatikai és távérzékelési alkalmazások fejlesztése. A szoftverfejlesztés technikai támogatása

Git verziókövető rendszer alkalmazása

Dr. Mileff Péter SZOFTVERFEJLESZTÉS VERZIÓKÖVETÉS, VERZIÓKÖVETŐ RENDSZEREK. Miskolci Egyetem Általános Informatikai Tanszék

Saját Subversion tároló üzemeltetése i. Saját Subversion tároló üzemeltetése

Toolok a programozás féléves feladatokhoz

Konfigurációmenedzsment

Címkék és ágak kezelése i. Címkék és ágak kezelése

Mobil Telefonon Keresztüli Felügyelet Felhasználói Kézikönyv

WebCenter. Online jóváhagyás és együttműködés. Gönczi Zsolt Október

Orvosi készülékekben használható modern fejlesztési technológiák lehetőségeinek vizsgálata

Verziókezelt konfigurációmanagement++ Pásztor György, SZTE Klebelsberg Könyvtár

Csempesz János, Fülöp Csaba, Kovács László

Web harvesztelés. Automatikus módszerekkel

Petőfi Irodalmi Múzeum. megújuló rendszere technológiaváltás

Az állományok kezelésére használt fontosabb parancsok

Szakdolgozat. Csernai Csaba

Verziókövető rendszerek használata a szoftverfejlesztésben

GDi Esri Magyarország Felhasználói Konferencia Timár Gábor: Konkurens adatfeldolgozás ArcGIS rendszerben

Szerver-üzemeltetés - Tudásközpont, Pécs

2. modul - Operációs rendszerek

italc felhasználói dokumentáció

Fási PHP függőségkezelés composerrel

Linux alapok. Parancsok általános alakja parancs kapcsolók paraméterek

1_Linux_bevezeto_bash

Az MTA Cloud a tudományos alkalmazások támogatására. Kacsuk Péter MTA SZTAKI

OpenCL alapú eszközök verifikációja és validációja a gyakorlatban

OE-NIK 2010/11 ősz OE-NIK ősz

Állásidő minimalizálása: BTRFS, kgraft

Aláírási jogosultság igazolása elektronikusan

Linux alapok gyakorlat

Titkosítás NetWare környezetben

TOGAF elemei a gyakorlatban

Miért érdemes váltani, mikor ezeket más szoftverek is tudják?

Tranzakció-kezelés, alapfogalmak. Vassányi István, 2012.

(Teszt)automatizálás. Bevezető

Multimédiás adatbázisok

Csomagkezelés haladó. Bakai Dániel, volt reszortvezető

Kézikönyv ABAS-TOOLS használata

Zimbra levelező rendszer

Oracle Audit Vault and Database Firewall. Gecseg Gyula Oracle DBA

Ügyviteli rendszerek hatékony fejlesztése Magic Xpa-val mobilos funkciókkal kiegészítve. Oktatók: Fülöp József, Smohai Ferenc, Nagy Csaba

FÉLÉVES FELADAT KÖVETELMÉNYEK

Felhasználói kézikönyv. Verzió : 1.0 draft Kiadás : Oldal: 1 / 10

BOOKING GUIDE. itbroadcast - INFOTÉKA

Hozzávalók keresése és csatolása

Programozási technológia 2.

Operációs rendszerek gyak.

CentOS 7 OTRS telepítése, beállítása

UNITIS Rt. Windchill PDMLink oktatóanyag PDMLink ügyességek Pro/ENGINEER Wildfire környezetben

DAT adatcserefájl AutoCAD MAP DWG mapobject konvertáló program dokumentáció

Távolléti díj kezelése a Novitax programban

CI gyakorlat segédlet

Az indexelés újdonságai Oracle Database 12c R1 és 12c R2

Mobil Peer-to-peer rendszerek

Új komponens a Talend Palettán: Starschema SAP Connector. Csillag Péter, Földi Tamás Starschema Kft.

Rendszerkezelési útmutató

OO PDO. Tehát PDO használatával, könnyen átállhatunk egy másik adatbáziskezelőre, anélkül hogy a kódot teljes egészében újraírnánk.

Algoritmusok és adatszerkezetek gyakorlat 06 Adatszerkezetek

Az SQL*Plus használata

Nyílt forráskódú irodai programkomponensek vállalati környezetbe való integrációjának vizsgálata és implementációja

Dropbox - online fájltárolás és megosztás

Szolgáltatás és Minőségfejlesztés a Corvinus Egyetemen Kiss György János Mogyorósi János

Rendszám felismerő rendszer általános működési leírás

Adatbázis kezelő szoftverek biztonsága. Vasi Sándor G-3S

Jelszóváltás a ludens gépen

Nyíregyházi Egyetem Matematika és Informatika Intézete. Fájl rendszer

Egyetemi könyvtári nyilvántartó rendszer

2. lépés: openssh szerver telepítés sudo apt-get install openssh-server

Alkalmazások típusai Szoftverismeretek

ELTE SAP Excellence Center Oktatóanyag 1

S, mint secure. Nagy Attila Gábor Wildom Kft.

A szükséges új mérıpontok kialakítása, mérık, kommunikációs hálózat, adattovábbító eszközök elhelyezésével.

KI FIZET A VÉGÉN? Vásárlói élmény a pénztárnál: ONLINE vs. OFFLINE. Mónus Ádám, Egedy Kristóf Payment Courier

Peer-to-Peer (P2P) hálózatok

Egy családfaszerkesztő alkalmazás leírása

A Putty. Megszállott rendszergazdák számára ideális, mert a hibajelzések így nem zavarják a körülöttük alvókat J

GPRS Remote. GPRS alapú android applikáció távvezérléshez. Kezelési útmutató

Egy egyszerű, gyors és szabad újratelepítő eszköz: upi

Operációs rendszerek. 4. gyakorlat. BASH bevezetés, script írása, futtatása UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED

SharePoint Online. Keresés Webhelyek, személyek vagy fájlok között kereshet. Webhely vagy hírbejegyzés létrehozása

Rekurzió. Dr. Iványi Péter

Adatbázis-kezelő rendszerek alkalmazása. MongoDB beadandó feladat Programtervező informatikus szak

Operációs rendszerek - bevezető

Bevezetés az informatikába, második gyakorlat. Bevezetés Környezetváltozók és néhány egyszerű utasítás Jogosultságok Fájlkezelés

Átírás:

Git bevezető Szabó Adrienn Adatbányászat és Webes Keresés Kutatócsoport 2010

Tartalom Mi is a git? Mi a git? Git alapok Hasznos tudni Csapatban dolgozni Centralizált vs elosztott modell Munkafolyamat Git pro eszközök Branching Egyebek Összefoglalás

Áttekintés Mi is a git? Mi a git? Git alapok Hasznos tudni Csapatban dolgozni Centralizált vs elosztott modell Munkafolyamat Git pro eszközök Branching Egyebek Összefoglalás

Git: egy modern verziókezelő Manapság a legnépszerűbb 1 szabadon használható elosztott verziókövető rendszer a git. Kicsit nehezebb ugyan megtanulni mint a cvs-t vagy az svn-t, de megéri, mert sokkal többet tud. Előnyei: Elosztott Rugalmas Könnyű branch-eket használni Gyors Jól használható más rendszerekkel együtt is 1 Open Source projektek körében

Egy kis történelem Az első verziókövető redszer (VCS) a CVS volt (1986). Azóta sok más rendszert fejlesztettek, mert a CVS nem tudott minden igényt kielégíteni. 2000-ben a linux kernel fejlesztésének támogatására Linus a BitKeeper-t választotta, ami az első valóban elosztott VCS volt. Licenszelési konfliktusok miatt 2005-ben a kernel fejlesztői úgy döntöttek hogy létrehoznak egy saját verziókezelőt. A célok között szerepelt: gyorsaság egyszerűség nem-lineáris fejlsztés (párhuzamos branchek) támogatása nagy projektek hatékony kezelése

Egy kis történelem Az első verziókövető redszer (VCS) a CVS volt (1986). Azóta sok más rendszert fejlesztettek, mert a CVS nem tudott minden igényt kielégíteni. 2000-ben a linux kernel fejlesztésének támogatására Linus a BitKeeper-t választotta, ami az első valóban elosztott VCS volt. Licenszelési konfliktusok miatt 2005-ben a kernel fejlesztői úgy döntöttek hogy létrehoznak egy saját verziókezelőt. A célok között szerepelt: gyorsaság egyszerűség nem-lineáris fejlsztés (párhuzamos branchek) támogatása nagy projektek hatékony kezelése

Git alapok A legtöbb verziókezelő a fájlok eredeti verzióit és az ahhoz képesti változásokat rögzíti. Ezzel szemben a git ún. snapshot-okat tárol. Ez lehetővé teszi hogy úgy működjön mint egy mini fájlrendszer.

Git alapok A git rugalmasságát részben az biztosítja, hogy a fájloknak van egy közbülső állapota a commit előtt. Egy fájl háromféle állapotban lehet a git repository-n belül: modified, staged vagy committed.

Első példa Új repository létrehozása, fájlok hozzáadása a projekthez, állapot ellenőrzése, néhány commit, átnevezés, törlés log megtekintése. Parancsok: git init git status git add git commit git mv git rm git log

Beállítások Néhány változó beállításával hasznosabb logokat kaphatunk, illetve alias-okat is megadhatunk hogy kevesebbet kelljen gépelni. git config --global user.name adri git config --global user.email adri@sztaki.hu git config --global alias.ci commit git config --global alias.st status git config --global alias.co checkout

Egy fájl életciklusa

Második példa Mi változott? Hibák kijavítása: utolsó commit módosítása, nem-commitolt változtatások eldobása (reset), commitok eldobása (revert). Parancsok: git diff git commit --amend git reset git checkout git config alias.unstage reset HEAD -- git unstage git revert

Git objektumok A git tömörített objektumokban tárol és a SHA-1 hash értékkel azonosít mindent (fájlok, könyvtárfa, commitok).

A history egy DAG Egyszerű esetben a commitok szép sorban követik egymást: De merge esetén egy commit-nak két (vagy több) szülője is lehet majd.

Áttekintés Mi is a git? Mi a git? Git alapok Hasznos tudni Csapatban dolgozni Centralizált vs elosztott modell Munkafolyamat Git pro eszközök Branching Egyebek Összefoglalás

Centralizált vs elosztott verziókövetés Elosztott rendszer előnyei: offline is használható lokális műveletek a helyi repository-n: gyorsabb a fejlesztők bátrabban commitolnak sok kicsit ha nem kell rögtön a központba tenni mindenki szeme láttára a még félkész művüket mindenkinél megvan az egész repo (biztonság) a hatékony tömörítés miatt nem lesz túl nagy a repo mérete historyval együtt sem

Centralizált vs elosztott verziókövetés Elosztott rendszer előnyei: offline is használható lokális műveletek a helyi repository-n: gyorsabb a fejlesztők bátrabban commitolnak sok kicsit ha nem kell rögtön a központba tenni mindenki szeme láttára a még félkész művüket mindenkinél megvan az egész repo (biztonság) a hatékony tömörítés miatt nem lesz túl nagy a repo mérete historyval együtt sem

Centralizált vs elosztott verziókövetés Elosztott rendszer előnyei: offline is használható lokális műveletek a helyi repository-n: gyorsabb a fejlesztők bátrabban commitolnak sok kicsit ha nem kell rögtön a központba tenni mindenki szeme láttára a még félkész művüket mindenkinél megvan az egész repo (biztonság) a hatékony tömörítés miatt nem lesz túl nagy a repo mérete historyval együtt sem

Centralizált vs elosztott verziókövetés Elosztott rendszer előnyei: offline is használható lokális műveletek a helyi repository-n: gyorsabb a fejlesztők bátrabban commitolnak sok kicsit ha nem kell rögtön a központba tenni mindenki szeme láttára a még félkész művüket mindenkinél megvan az egész repo (biztonság) a hatékony tömörítés miatt nem lesz túl nagy a repo mérete historyval együtt sem

Centralizált vs elosztott verziókövetés Elosztott rendszer előnyei: offline is használható lokális műveletek a helyi repository-n: gyorsabb a fejlesztők bátrabban commitolnak sok kicsit ha nem kell rögtön a központba tenni mindenki szeme láttára a még félkész művüket mindenkinél megvan az egész repo (biztonság) a hatékony tömörítés miatt nem lesz túl nagy a repo mérete historyval együtt sem

Centralizált rendszer

Decentralizált rendszer

Harmadik példa Kommunikáció a központtal: git clone Lemásol egy projektet a központból. (Nálunk a gitosis kezeli a központot, lásd később.) git pull A központból lekéri a legutóbbi állapotot (persze a historyval együtt) és merge-eli a helyi repóval. git push Felteszi a legutóbbi commit-jaidat a központba

SVN és git parancsok

Gitosis A gitosis megoldja több központi repository és több felhasználó biztonságos kezelését. A felhasználók csak egy korlátozott jogú shellhez kapnak hozzáfárást a szerveren. Projektenként egyszerűen megadhatók írási-olvasási jogok, felhasználói csoportok is létrehozhatók. A felhasználókat a gitosis SSH kulcsokkal azonosítja. Ezért minden olyan gépen amin git-et szeretnél használni (illetve a központot is el szeretnéd érni), le kell futtatnod az ssh-keygen parancsot, és a generált publikus kulcsot Adri vagy Zsolt beteszi a gitosis-ba.

Áttekintés Mi is a git? Mi a git? Git alapok Hasznos tudni Csapatban dolgozni Centralizált vs elosztott modell Munkafolyamat Git pro eszközök Branching Egyebek Összefoglalás

Branching A git egyik legnagyobb erőssége a hatékony branch-kezelés. Alap parancsok: git branch Kilistázza a brancheket. git branch mybr Létrehozza a mybr ágat. git checkout mybr Átvált a mybr nevű ágra. git merge mybr2 Az aktuális ágba merge-eli mybr2-t. git branch -d mybr Törli a mybr nevű ágat. Csak akkor fog sikerülni ha az ág merge-elve van már egy másik ágba, hogy ne veszítsünk el semmit.

Branching

Branching

Branching

Branching

Branching

Branching

Grafikus felület: Gitk

A polc: stash Néha branch-váltáskor (páldául amikor csak gyorsan szeretnél megnézni valamit a másik ágon) nem kellemes commitolni csak azért hogy válthass, pedig a váltáshoz tiszta munkakönyvtár kell. Hogy a munkakönyvtáradat gyorsan kitakarítsd, felteheted a még nem commitolt változtatásaidat és az index(stage) tartalmát a polcra, ami egy stack a félkész dolgoknak.

Stash kezelése git stash A wd változtatásait elmenti a stack tetejére. git stash list Kilistázza a stash tartalmát. git stash show -p Megmutatja a legfelső elem changeset-jének változtatásait. git stash apply A legfelső mentett changeset-et alkalmazza a munkakönyvtáradra. git stash pop A legfelső mentett changeset-et alkalmazza a munkakönyvtáradra, és törli a stack tetejéről. git clear Mindent kidob a polcról.

Egyszerűsített history: squash A sok kicsi kommit lokálisan hasznos, de áttekinthetőbb lesz ha egyben töltöd fel az új feature-t a központba. Több szekvenciális kommit egybeolvasztható a --squash opcióval. Ha a feature-branch ágban kész vagy valamivel, akkor ezzel az összes feature-kommitot egyetlen kommitként is merge-elheted a master-be. git checkout master git merge --squash feature-branch git commit -am New feature

Egyebek git svn Akkor is használhatsz git-et ha a projekt SVN-ben van git rebase Merge helyett használható, szebb history gráfot eredményez, de nem mindig használható remotes Több távoli forrás is használható egy repositoryban remote branches Branchek létrehozása központban, követésük a helyi repóban git tag Verziók, állapotok címkézése. submodules Al-projektek (repository-k) egy nagy projekten belül

Összefoglalás A git hátrányai: Bonyolult, nehezebb megtanulni Nem-standad elnevezések (checkout, revert) Nem lehet a projektnek csak egy részét clone-ozni Nagy bináris fájlokat nem kezeli hatékonyan A history átírható

Összefoglalás A git előnyei: Ha már megtanultad kezelni akkor hatékony Gyors Biztonságos: elosztott, és ellenőrizhető az integritás (hash) Rugalmas, sokféle workflow-t támogat A history átírható

Függelék További olvasnivalók I Official Git page http://git-scm.com/ Pro Git book http://progit.org/ Git Howto Wiki https://textrend.sztaki.hu/cgi-bin/twiki/view/main/githowto