====== Git Troubleshooting ====== ===== SSH‑Key‑Probleme ===== ==== Problem: „Permission denied (publickey)“ ==== __Ursache__: Der SSH‑Key ist nicht im Agent, nicht auf dem Server oder du verwendest den falschen Key. === Lösungsschritte: === - Prüfen, ob ein Key existiert dir ~/.ssh Erwartet: id_ed25519 und id_ed25519.pub - SSH‑Agent starten eval $(ssh-agent -s) - Key hinzufügen ssh-add ~/.ssh/id_ed25519 - Public Key in Gitea eintragen * Gitea → Benutzerprofil → SSH‑Keys * Inhalt von id_ed25519.pub einfügen - Verbindung testen ssh -T git@ ==== Problem: „Host key verification failed“ ==== __Ursache__: Der Server ist neu oder der Fingerprint hat sich geändert. === Lösung: === ssh-keygen -R ssh → Fingerprint bestätigen ==== Problem: VS Code / Visual Studio nutzt falschen SSH‑Key ==== === Lösung: === In //~/.ssh/config//: Host gitea HostName User git IdentityFile ~/.ssh/id_ed25519 ===== Merge‑Konflikte ===== ==== Problem: „CONFLICT: Merge conflict in “ ==== __Ursache__: Zwei Personen haben dieselbe Stelle geändert. == Konfliktmarkierungen im Code == <<<<<<< HEAD deine Änderungen ======= Änderungen vom anderen Branch >>>>>>> feature/login === Lösungsschritte: === - Datei öffnen - Konfliktbereiche manuell korrigieren - Konfliktmarkierungen entfernen - Datei als gelöst markieren: git add - Merge abschließen: git commit ==== Problem: Merge zu komplex / unübersichtlich ==== === Lösung: === Merge abbrechen git merge --abort ==== Problem: Visual Studio zeigt Konflikte nicht sauber an ==== === Lösung: === * Menü: **Git** → **Konflikte** → **Konflikt lösen** * Alternativ: VS Code öffnen (bessere Konfliktansicht) ===== Push‑Fehler ===== ==== Fehler: „non-fast-forward“ oder „rejected“ ==== __Ursache__: Auf dem Server gibt es neue Commits, die du lokal nicht hast. === Lösung: === git pull → **Konflikte lösen** → **Commit** → **Push** ==== Fehler: „Updates were rejected because the remote contains ==== __Ursache__: Du hast lokal Commits, die nicht auf dem Server sind. === Lösung: === git pull --rebase git push === Alternative (wenn Merge gewünscht) === git pull git push ==== Fehler: „You are not allowed to push to this repository“ ==== __Ursache__: * Falscher Benutzer * Keine Schreibrechte * Falscher Branch (z. B. main geschützt) === Lösung: === * Gitea → Repository → Settings → Branch Protection prüfen * Schreibrechte prüfen * Branch wechseln: git checkout ==== Fehler: „fatal: Authentication failed“ ==== __Ursache__: Bei HTTPS: falsches Passwort oder Token fehlt. === Lösung: === * In Gitea → Benutzerprofil → Tokens * Neuen Token erstellen * Git‑Credential‑Manager aktualisieren: git credential-manager reject https:// ===== Allgemeine Reparaturbefehle ===== ==== Lokales Repo „reparieren“ ==== git fetch --all git reset --hard origin/main ==== Staging zurücksetzen ==== git restore --staged ==== Datei wiederherstellen ==== git restore