Cheat sheet / Git használata

Ez az oldal röviden bemutatja a Git alapjait és a leggyakrabban használt parancsokat.

A Git egy verziókezelő rendszer, amellyel nyomon követheted a fájlok változásait, és együtt dolgozhatsz másokkal egy projekten.

A példák segítenek megérteni, hogy az egyes parancsok mit csinálnak és milyen kimenetet adnak.

A parancsokat terminálban kell futtatni, és a kimenet mindig az aktuális projekt állapotától függ.

Hasznos lehet, ha most ismerkedsz a Git-tel, de akkor is, ha csak gyorsan szeretnél valamit megnézni.

Alapok

Git verzió megtekintése

git --version

git version 2.x.x

Ez a parancs megmutatja a telepített Git verzióját, így láthatod, hogy milyen verziót használsz.

Git konfiguráció megtekintése

git config -l

user.name=John Doe
...

Ez a parancs megmutatja a Git konfigurációs beállításait, így láthatod, hogy milyen beállításokat használsz a Git-ben.

Git init használata

git init

Initialized empty Git repository in /path/to/repo/.git/

Ez a parancs létrehoz egy új Git repository-t a jelenlegi könyvtárban, így elkezdheted használni a Git-et a projektedben.

Git clone használata

git clone [repository_url]

Cloning into '[könyvtár_neve]'...

Ez a parancs létrehoz egy helyi másolatot a távoli repository-ról, így dolgozhatsz a projekteden anélkül, hogy közvetlenül a távoli repository-ban dolgoznál.

Napi workflow

Git státusz ellenőrzése

git status

On branch main
Your branch is up to date with 'origin/main'.

Changes to be committed:
    (use "git restore --staged <file>..." to unstage)
        new file: [új_fájl]
        deleted: [törölt_fájl]
        renamed: [régi_fájlnév] -> [új_fájlnév]
        ...

Changes not staged for commit:
    (use "git add <file>..." to update what will be committed)
    (use "git restore <file>..." to discard changes in working directory)
        modified: [módosított_fájl]
        ...

Ez megmutatja a jelenlegi állapotot, beleértve a módosított fájlokat és a staging area tartalmát.

Git diff használata

git diff

diff --git a/[fájl_neve] b/[fájl_neve]
index 1234567..89abcde 100644
--- a/[fájl_neve]
+++ b/[fájl_neve]
@@ -1,5 +1,5 @@
-[régi_sor]
+[új_sor]
...

Ez megmutatja a fájlok közötti különbségeket, így láthatod, hogy milyen változtatások történtek a fájlokban.

Git restore használata

git restore [fájl_neve]

Ez a parancs visszaállítja a megadott fájlt a legutóbbi commit állapotára, így ha véletlenül módosítottál egy fájlt, és vissza akarod állítani a változtatásokat, használhatod ezt a parancsot.

Fájlok hozzáadása a staging area-hoz

git add .

warning: in the working copy of '.gitignore', LF will be replaced by CRLF the next time Git touches it

Ez a parancs minden módosított és új fájlt hozzáad a staging area-hoz, készen állva a commitolásra.


git add [fájl_neve]

warning: in the working copy of '.gitignore', LF will be replaced by CRLF the next time Git touches it

Ez a parancs csak a megadott fájlt adja hozzá a staging area-hoz.

Git restore --staged használata

git restore --staged [fájl_neve]

Ez a parancs eltávolítja a megadott fájlt a staging area-ból, így ha véletlenül hozzáadtál egy fájlt a staging area-hoz, és vissza akarod vonni ezt a műveletet, használhatod ezt a parancsot.

Változtatások commitolása

git commit -m "[commit_üzenet]"

[main beb50f9] [commit_üzenet]
 [db] files changed, [db] insertions(+), [db] deletions(-)
 create mode 100644 [fájlnév]
 ...

Ez a parancs létrehoz egy új commitot a staging area-ban lévő változtatásokkal, és a commit üzenetben leírja a változtatásokat.

Git amend használata

git commit --amend

Ez a parancs lehetővé teszi, hogy módosítsd a legutóbbi commitot, így ha elfelejtettél valamit hozzáadni a commithoz, vagy ha elírtad a commit üzenetet, használhatod ezt a parancsot a commit módosításához.

Git log megtekintése

git log

commit beb50f9c1a2b3c4d5e6f7g8h9i0j1k2l3m4n5o
Author: John Doe <john.doe@example.com>
Date: Mon Jan 1 12:00:00 2024 +0100

[commit_üzenet]

...

Ez megmutatja a commit történetet, beleértve a commit hash-t, szerzőt, dátumot és commit üzenetet.


git log --oneline --graph --all

* beb50f9 (HEAD -> main, origin/main) [commit_üzenet]
* abcdef1 [commit_üzenet]
* 1234567 [commit_üzenet]
...

Ez egy tömörített nézet a commit történetről, ahol minden commit egy sorban jelenik meg, és a gráf jelzi a commitok közötti kapcsolatokat.

Távoli repo kezelés

Távoli repository hozzáadása

git remote add origin https://github.com/felhasználó/repository.git

Ez a parancs hozzáad egy távoli repository-t a helyi Git repository-hoz, így később pusholhatod a változtatásokat a távoli repository-ba.

Távoli repository-k megtekintése

git remote -v

origin [távoli_repository_url] (fetch)
origin [távoli_repository_url] (push)

Ez a parancs megmutatja a távoli repository-k listáját és azok URL-jeit, valamint azt, hogy milyen műveletekre használhatók (fetch vagy push).

Git fetch használata

git fetch

Ez a parancs letölti a távoli repository-ban lévő változtatásokat, de nem próbálja meg automatikusan egyesíteni őket a helyi branch-edbe. Ez hasznos lehet, ha először meg akarod nézni a változtatásokat, mielőtt egyesítenéd őket.

Git pull használata

git pull

Ez a parancs letölti a távoli repository-ban lévő változtatásokat és megpróbálja automatikusan egyesíteni őket a helyi branch-edbe.

Változtatások pusholása a távoli repository-ba

git push -u origin [branch_név]

Enumerating objects: [db], done.
Counting objects: [százalék] ([db]/[db]), done.
Delta compression using up to [db_szál] threads
Compressing objects: [százalék] ([db]/[db]), done.
Writing objects: [százalék] ([db]/[db]), [méret] | [sebesség], done.
Total 20 (delta 2), reused 0 (delta 0), pack-reused 0 (from 0)
remote: Resolving deltas: [százalék] ([db]/[db]), completed with [db] local objects.
To [távoli_repository_url]
 bc1f854..beb50f9 main -> main
branch 'main' set up to track 'origin/main'.

Ez a parancs feltölti a helyi commitokat a távoli repository-ba, így mások is láthatják a változtatásokat.

Branching

Branchek listázása

git branch

* main

Ez a parancs megmutatja a helyi brancheket, és a csillag jelöli, hogy melyiken vagy éppen.

Új branch létrehozása

git checkout -b [branch_név]

Switched to a new branch '[branch_név]'

Ez a parancs létrehoz egy új branch-et és azonnal át is vált rá, így elkezdhetsz dolgozni az új branch-en anélkül, hogy megzavarnád a main branch-et.


git branch [branch_név]

warning: in the working copy of '.gitignore', LF will be replaced by CRLF the next time Git touches it

Ez a parancs csak létrehoz egy új branch-et, de nem vált át rá. Ez hasznos lehet, ha először létre akarod hozni a branch-et, majd később váltani rá.

Branch váltása

git checkout [branch_név]

Ez a parancs vált a megadott branch-re, így dolgozhatsz azon a branch-en.


git switch [branch_név]

Ez a parancs vált a megadott branch-re, hasonlóan a git checkout parancshoz, de kifejezetten a branch váltására szolgál, így egyértelműbbé teszi a parancs használatát.

Branchek megtekintése távoli repository-ban

git branch -r

origin/HEAD -> origin/main
origin/feature-1
origin/feature-2
...

Ez a parancs megmutatja a távoli repository-ban lévő brancheket, így láthatod, hogy milyen ágak vannak a távoli repository-ban.

Git reset használata

git reset --hard [commit_hash]

Ez a parancs visszaállítja a jelenlegi branch-et a megadott commit állapotára, így ha véletlenül elkövettél egy hibát, és vissza akarod állítani a változtatásokat, használhatod ezt a parancsot.

Branch törlése

git branch -d [branch_név]

Ez a parancs törli a megadott branch-et, de csak akkor, ha már be van olvasztva egy másik branch-be. Ha erőszakosan szeretnéd törölni a branch-et, használhatod a git branch -D [branch] parancsot.

Branch átnevezése

git branch -m [régi_branch_név] [új_branch_név]

Ez a parancs átnevezi a megadott branch-et, így könnyen javíthatod a branch nevében lévő hibákat vagy módosíthatod a nevet a projekt igényeinek megfelelően.

Branch összehasonlítása

git branch -v

Ez a parancs megmutatja a helyi brancheket és azok utolsó commitját, így láthatod, hogy mely brancheken milyen változtatások történtek.

Stash használata

Stash mentése

git stash

Ez a parancs elmenti a jelenlegi munkakönyvtárban lévő változtatásokat egy ideiglenes helyre, így tiszta állapotba kerülhetsz, hogy más branch-en dolgozhass, majd később visszaállíthatod ezeket a változtatásokat.

Stash visszaállítása és eltávolítása

git stash pop

Ez a parancs visszaállítja a legutóbbi stash-ben elmentett változtatásokat a munkakönyvtárba, és eltávolítja azt a stash listából.

Stash visszaállítása megtartással

git stash apply

Ez a parancs visszaállítja a legutóbbi stash-ben elmentett változtatásokat a munkakönyvtárba, de nem távolítja el azt a stash listából, így ha később még szükséged lehet ezekre a változtatásokra, megtarthatod őket a stash-ben.

Stash lista megtekintése

git stash list

Ez a parancs megmutatja a stash-ben elmentett változtatások listáját, így láthatod, hogy milyen változtatásokat mentettél el a stash-ben.

Stash törlése

git stash drop

Ez a parancs eltávolítja a legutóbbi stash-ben elmentett változtatásokat a stash listából, így ha már nincs szükséged ezekre a változtatásokra, eltávolíthatod őket.

Stash törlése az összes elemmel

git stash clear

Ez a parancs eltávolítja az összes stash-ben elmentett változtatást a stash listából, így ha már nincs szükséged ezekre a változtatásokra, eltávolíthatod őket.

Stash részleteinek megtekintése

git stash show

Ez a parancs megmutatja a legutóbbi stash-ben elmentett változtatások részleteit, így láthatod, hogy milyen változtatásokat mentettél el a stash-ben.

Haladó

Git show használata

git show [commit_hash]

commit beb50f9c1a2b3c4d5e6f7g8h9i0j1k2l3m4n5o
Author: John Doe <john.doe@example.com>
Date: Mon Jan 1 00:00:00 2024 +0000

[commit_üzenet]

Ez a parancs megjeleníti a megadott commit összes változtatását.

Git help használata

git help [parancs]

Ez a parancs megnyitja a Git súgóját a megadott parancshoz, ahol részletes információkat találhatsz a parancs használatáról és opcióiról.

Egyéb

Git clean használata

git clean -f

Ez a parancs eltávolítja a nem követett fájlokat a munkakönyvtárból, így tiszta állapotba kerülhetsz, ha sok nem követett fájl van a projektedben.

Git tag használata

git tag

Ez a parancs megmutatja a repository-ban lévő tageket, így láthatod, hogy milyen fontos mérföldkövek vannak a projektedben.

Git merge használata

git merge [branch_név]

Ez a parancs megpróbálja egyesíteni a megadott branch-et a jelenlegi branch-edbe, így integrálhatod a változtatásokat.

Git rebase használata

git rebase [branch_név]

Ez a parancs újraírja a commit történetet úgy, hogy a jelenlegi branch-ed commitjai a megadott branch tetejére kerüljenek, így tisztább commit történetet hozhatsz létre.