Alapfogalmak
Kommit:
Elemi egység, a fájlokról elmentett pillanatkép. Minél gyakrabban és minél kisebb logikailag összetartozó egységet kommitoljunk A kommitokank van gyereke és szülője. HEAD: utolsó kommit
Branch
Kommitok egymásutáni sorozata (kommit pötty, branch vonal) master: automatikusan létrejön
Workspace
Fejlesztésben használt fájlok, ezeken dolgozunk
Repository
Metadatok tárolása (kommitok, branchek, címkék)
Installálás
apt-get install git-core git-doc git-gui gitk
apt-get install git-core git-doc git-gui gitkHelp
git help
git help <parancs> # pl git help commit
git help
git help <parancs> # pl git help commitBeállítások
git config --global user.name "Simon Balázs"
git config --global user.email "balazs.simon@intren.hu"
git config -l # lista
git config --global user.name "Simon Balázs"
git config --global user.email "balazs.simon@intren.hu"git config -l # listaAlias
git config --global alias.co "checkout"
git config --global alias.st "status"
git config --global alias.co "checkout"
git config --global alias.st "status"Alap parancsok
Init
Új git repository létrehozása
git initStatus
Változások listázása
git statusAdd, mv, rm
File hozzáadása, áthelyezése, törlése
git add <filename>
git mv <oldfilename> <newfilename>
git rm <filename>Commit
Változások mentése
git commit
git commit -m 'commit message'
git commit -a # staging area kihagyásaKimaradt változás hozzáadása az utolsó kommithoz vagy kommit message átírása
git commit --amend.gitgnore
Fájlok listája amit nem akarunk a verziókezelőben tárolni (pl konfig fájlok)
Log
Commitok listázása
git log
git log -p # lista diff-elDiff
Változások megtekintése
git diff
git diff -w # whitespace karakterek figyelmen kívül hagyása
git diff <oldhash>..<newhash>
git diff <oldtag>..<newtag> # tag is használhatóBlame
File változások listázása
git blame <filename>Tag
Címkézés (pl programverzió), kommit azonosítására (checkout, diff)
git tag <cimke> # címke létrehozása
git tag # használt címkék listázása
git tag -d <cimke> # címke törléseReset
Nem kommitolt módosítás eldobása
git reset --hard
git reset --hardKommit törlése (utolsó kommit hash-t kell megadni, az előttelevőket törli)
git reset --hard <hash>
git reset --hard <hash>Stash
Módosítás mentése átmeneti tárolóba
git stash save "message" # mentés
git stash save "message" # mentésStash kommitok megtekintése
git stash list # stash commitok listázása
git stash show <stash@\{0\}> # commit megtekintése, a kapcsos zárójeleket escape-elni kell!
git stash show -p <stash@\{0\}> # commit megtekintése diff-el
git stash list # stash commitok listázása
git stash show <stash@\{0\}> # commit megtekintése, a kapcsos zárójeleket escape-elni kell!
git stash show -p <stash@\{0\}> # commit megtekintése diff-elVáltozások újraalkalmazása, stash törlése nélkül
git stash apply <azonosito> # azonosító nélkül az utolsó kommit
git stash apply <azonosito> # azonosító nélkül az utolsó kommitVáltozások újraalkalmazása, stash törlésével
git stash pop <azonosito> # azonosító nélkül az utolsó kommit
git stash pop <azonosito> # azonosító nélkül az utolsó kommitKommit eldobása
git stash drop <azonosito> # azonosító nélkül az utolsó kommit
git stash drop <azonosito> # azonosító nélkül az utolsó kommitBranch
Listázás
git branch
git branchÚj branch létrehozása
git branch <branchname>
git branch <branchname>Branch átnevezése
git branch -m <oldbranchname> <newbranchname>
git branch -m <oldbranchname> <newbranchname>Törlés
git branch -d <branchname>
git branch -D <branchname> # nem mergelt branch törlése
git branch -d <branchname>
git branch -D <branchname> # nem mergelt branch törléseCheckout
Branchek közötti váltás
git checkout <branchname>
git checkout -b <branchname> # új branch létrehozása és abba átállásMerge
Branchek összeolvasztása
git merge <branchname>További parancsok
fsck
Repository metaadatainak ellenőrzése
git fsckgc
Felesleges metaadatok törlése
git gc~ ^
Kommitok elérési útvonala (git help rev-parse) ~ - kommit szülője függőleges irányban ^ - kommit szülője vízszintes irányban
Cherry-pick
Kommit másolása másik branchből (csak kicsi, hibajavító kommitot másoljunk!)
git cherry-pick <commithash>Staging area
Workspace és a repository között elhelyezkedő tároló.
- git add-al lehet hozzáadni
- git commit innen kommitolja a változást
- git commit -a kihagyja a staging area-t
git reset
Változás törlése a staging area-ból (a változás nem törlődik)
git resetadd -p
File egy részletének kommitolása
git add -p- ? súgó
- s szétdarabolja a módosítást
- n kihagyja a módosítást
- y hozzáadás a staging area-hoz
Branch kezdőpontja
git co -b <branchname> <commithash>
git co -b <branchname> <commithash>Rebase
Régi kommitok módosítása, módosítása, törlése (pusholt kommitoknál ne használjuk)
git rebase -i <commithash> # -i interactive- sor törlése: kommit törlése
- sorrend változtatása: kommitok sorrendjének változtatása
- pick: kommitot a rendszer használja
- edit: kommitot a rendszer használja, de álljon meg a feldolgozás, hogy lehessen (--amend), folytatás: git rebase --continue
- squash: kommit összeolasztása az előző kommittal
Távoli repository
remote
Távoli repository-k listázása.
git remoteshow
Távoli repository adatainak megtekintése.
git remote show <name>add
Távoli repository hozzáadása a local repository-hoz. Az alapértelmezet távoli repository-t konvenció szerint origin névvel szoktuk létrehozni.
git remote add <name> <url>remove
Távoli repository kapcsolat törlése
git remote rm <name>rename
Távoli repository kapcsolat nevének törlése
git remote rename <oldname> <newname>clone
Távoli repository lemásolása local gépre. Automatikusan hozzádódik a távoli repository origin néven.
git clone <url>fetch
Távoli repository változásainak letöltése
git fetch <remotename> <branchname>A letöltött változásokat nem mergeli bele a local branchbe, kézzel kell mergelni
pull
Távoli repository változásainak letöltése és mergelése
git pull <remotename> <branchname>push
Lokális változások feltöltése távoli repository-ba
git push <remotename> <branchname>
Megjegyzések
Megjegyzés küldése