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