Ú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

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...
Shortcut készítés OSX-en Van pár programom Mac-en, ami console-ból indítható. Vagy azért, mert például csak Mono Framework-kel működik a portolt program, vagy azért mert eleve...
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...
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...