Learning
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-lease

Merge 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-untracked

Nagy 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 updateInstead

Rö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 reflog segít visszakeresni az elveszett commitokat.

On this page