Git CLI
Gyakori Git hibák
Detached HEAD, lemaradt branch, érzékeny adatok, merge conflictek és nagy fájlok kezelése.
Gyakori hibák
"Detached HEAD" állapot
Mi ez: A HEAD nem egy branch-re, hanem közvetlenül egy commitra mutat.
# Visszatérés egy branch-re
git switch main
# vagy, ha el akarod menteni a változtatásokat:
git switch -c mentett-branch"Your branch is behind origin/main"
Mit jelent: A lokális branch lemaradt a remote-tól.
git pull --rebase origin mainÉrzékeny adat commitálása
Ha véletlenül commitáltál egy .env fájlt vagy API kulcsot:
# 1. Azonnal érvénytelenítsd a kulcsot a szolgáltatónál!
# 2. Távolítsd el a fájlt a tracking-ből
git rm --cached .env
echo ".env" >> .gitignore
git commit -m "chore: remove sensitive file from tracking"
# 3. Ha már pusholtad, a history tisztítása szükséges
# Használd a git-filter-repo eszközt (nem a --filter-branch-et)
pip install git-filter-repo
git filter-repo --path .env --invert-paths
git push --force-with-leaseMerge conflict kezelése
# Conflict vizualizáció VS Code-dal
git config --global merge.tool vscode
git mergetool
# Vagy manuálisan szerkesszük a fájlt,
# eltávolítva a <<<<<<<, =======, >>>>>>> jelzőket
# Majd:
git add conflicted-file.ts
git commit"Untracked files" figyelmen kívül hagyása ideiglenesen
# Összes untracked fájl ideiglenes elrejtése
git stash -u # --include-untrackedNagy fájlok véletlen commitálása
Ha véletlenül commitáltál egy nagy bináris fájlt:
# Az utolsó commitból kivesszük (ha még nem pusholtuk)
git rm --cached large-file.zip
git commit --amend --no-edit
# Ha már pusholtuk, git-filter-repo szükséges"Cannot push to a non-bare repository"
Ez akkor fordul elő, ha egy lokális repositoryba pushölsz, ahol az aktuális branch ki van checkoutolva.
# A cél repositoryban:
git config receive.denyCurrentBranch updateInsteadRövid összefoglaló
- Detached HEAD esetén
git switch <branch>visszahoz a normál állapotba. - Érzékeny adat commitálása esetén azonnali kulcscsere +
git filter-repo. - Merge conflictot manuálisan vagy
git mergetool-lal oldjuk fel. - Nagy fájlok véletlen commitálása esetén
git rm --cached+amend. - A
git reflogsegít visszakeresni az elveszett commitokat.