Újabb Git parancssori okosságok (add/rm/reset/log)

By | 2014. augusztus 22.

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

 

Hasonló cikkek

Git kliens konfigurálása Mac-en és Windows-on Az előző post-ban a Git szerver telepítésének menetét mutattam be, valamint létrehoztunk egy test nevű repo-t. Most azt nézzük meg, hogy hogyan tudjuk...
Git – Színek és parancskiegészítés tab-bal O... A Windows-os Git Bash alapból adja azokat a szolgáltatásokat, amik egy OSX-es terminálban hiányoznak, pedig nagyon hasznosak és kényelmesek, ha vannak...
PhpStorm és a Git Amióta Mac-et használok, mély fájdalommal kellett tudomásul vennem, hogy a hőn szeretett NuSphere által fejleszetett PhpED IDE fejlesztőkörnyezetemről...
Milyen memória van a gépben? A napokban úgy alakult, hogy egy Windows-os gépnél meg kellett tudnom, hogy mennyi RAM van benne és az hány modul formájában ölt testet a vasban, mive...