Próbáltam összeszedni pár olyan dolgot, ami a mindennapi Git használat során előjön amikor a módosításokat kezelem, és jó lenne, ha egy összeszedett formában akármikor kéznél lenne, ha kell…
File hozzáadása (stage changed)
Egy file hozzáadása
git add <file1>
Több file hozzáadása
git add <file1>, <file2>
Egy egész könyvtár hozzáadása rekurzívan
git add eleres/konyvtar/*
Minden változás hozzáadása
git add .
Egy törölt file/könyvtár hozzáadása stage changed listához
Egy törölt file
git rm <file1>
Egy komplett törölt könyvtár
git add -u eleres/konyvtar/*
Amíg a „commit” parancsot nem adjuk ki, az „add” és „rm” folyamatosan adja hozzá a fileokat, könyvtárakat az aktuális, „commit”-olandó kupachoz…
File törlése stage changed-ből
Ha már „add”-del hozzáadtuk, de mégsem szeretnénk, hogy a „commit”-tal bekerüljön a repo-ba (unstage). Újonnan létrehozott vagy módosított file(ok) esetén egyaránt.
git reset HEAD <file1>
Visszaállítás
Ha vissza akarjuk állítani egy file állapotát az utolsó „pull” állapotára, tehát törölni akarunk minden változtatást, ami a fileban történt (revert changes)Egy file
git checkout <file>
Minden változás visszaállítása
git checkout .
Repo visszaállítása a legutóbbi pull állapotra, de a „commit”-ok megmaradnak, lehet „push”-olni őket… amikor nem kerültek „commit”-ba visszaállítódnak. Megjegyzés: azok a file-ok, amik nem kerültek még követés (track) alá „add” által, a „reset” hatására megmaradnak, tehát a git nem fogja letörölni őket. De ha már „add”-del bekerültek a git „látókörébe”, akkor törlődnek.
git reset --hard
Repo visszaállítása eggyel korábbi állapotra, minden változás törlésre kerül + törli azokat a „commit”-okat is, amik még nem lettek „push”-olva!
git reset --hard HEAD~1
Az utolsó „commit”-ot ami még nem lett „push”-olva, visszavonja és a benne lévő file(ok) visszakerül(nek) a stage changed állapotba.
git reset --soft HEAD~1
Az összes untracked (újonnan létrehozott, a branch-be még be nem került) file törlése.
git clean -df
History
Minden előzmény a master branch-ben
git log origin/master
Minden esemény az utolsó „push” óta
git log origin/master..HEAD