Ú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...
3-way merge tool Git-hez – P4Merge Aki már dolgozott verziókövető rendszerekkel, tudja, hogy amikor kódot írunk, ráadásul nem egyedül, hanem csapatban fejlesztünk, óhatatlan, hogy egy m...
Git repository költöztetés Néha előfordul olyan eset, hogy egy komplett repot át kell költöztetni egy másik Git szerverre. Ilyenkor jön a fejvakarás, hogy nehogy elszúrjunk vala...
Git szerver telepítés Synology NAS-on Az otthoni munkáim során is szükség van verziókövető rendszerre a fejlesztéseknél. A legkézenfekvőbb megoldás, hogy a már amúgy is használatban lévő N...