====== 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