Warum funktioniert das Pushen nur über die Kommandozeile, aber nicht in GitHub Desktop?
- Unterschiedliche Authentifizierungsmethoden
- Unterschiede bei Remote-URLs (HTTPS vs. SSH)
- Credentials- und Tokenprobleme
- Proxy-, Firewall- oder Unternehmensrichtlinien
- Unterschiede in Git-Version und Konfiguration
- Fehlermeldungen prüfen und Schritte zur Lösung
Unterschiedliche Authentifizierungsmethoden
GitHub Desktop verwendet für Push-Vorgänge eigene, in die App integrierte Authentifizierungsflüsse (OAuth oder ein persönliches Zugriffstoken), während die Kommandozeile meist die auf dem System konfigurierten Git-Credentials (Credential Manager, SSH-Agent, gespeicherte Tokens) nutzt. Wenn in der CLI ein SSH-Key oder ein einmal eingerichtetes Personal Access Token (PAT) hinterlegt ist, funktioniert push. GitHub Desktop kann jedoch eine andere Konfiguration erwarten oder auf ein abgelaufenes/fehlkonfiguriertes Token zugreifen, was das Pushen verhindert.
Unterschiede bei Remote-URLs (HTTPS vs. SSH)
In der Kommandozeile wird oft eine SSH-Remote-URL (git@github.com:Benutzer/Repo.git) verwendet; GitHub Desktop kann standardmäßig HTTPS-Remotes verwenden oder falsch interpretieren, wenn das Repository lokal mit SSH konfiguriert ist. Bei SSH muss GitHub Desktop Zugriff auf denselben SSH-Agenten/Key haben wie die Shell; ist der Key nicht im Agenten geladen oder GitHub Desktop läuft unter anderem Benutzerkontext, schlägt der Push fehl.
Credentials- und Tokenprobleme
Ein häufiger Grund ist ein abgelaufenes oder fehlendes PAT, insbesondere seit GitHub das Passwort-Pushen über HTTPS abgeschafft hat. Die CLI kann ein aktuelles Token aus dem System-Credential-Manager nutzen, während GitHub Desktop sein eigenes Tokenverwaltungsfenster hat, in dem der Nutzer erneut einloggen muss. Ebenso können Mehr-Faktor-Authentifizierung (MFA) oder Organisationsrichtlinien zusätzliche Schritte erfordern, die in Desktop nicht automatisch durchlaufen werden.
Proxy-, Firewall- oder Unternehmensrichtlinien
In Unternehmensnetzwerken blockieren Proxy-Einstellungen oder Firewalls manchmal Desktop-Anwendungen anders als die Kommandozeile. GitHub Desktop hat eigene Netzwerkeinstellungen und kann zwar Systemproxy verwenden, aber wenn diese falsch sind oder zusätzliche Authentifizierung/Whitelisting nötig ist, bleiben Pushes hängen, während die CLI durch bereits konfigurierte Proxy-Umgebungsvariablen funktioniert.
Unterschiede in Git-Version und Konfiguration
Die CLI nutzt die auf dem System installierte Git-Version mit deren Konfiguration (~/.gitconfig), Hooks oder Custom-Credential-Helpers. GitHub Desktop bringt eine eigene Git-Distribution mit oder verwendet eine andere Konfigurationsdatei, sodass Hooks, line-ending-Einstellungen oder Credential-Helper unterschiedlich wirken. Das kann zu Berechtigungs- oder Merge-Konflikten beim Push führen, die die Desktop-App nicht automatisch löst.
Fehlermeldungen prüfen und Schritte zur Lösung
Praktisch hilft es, die genaue Fehlermeldung aus GitHub Desktop zu lesen, sich in der App ab- und wieder anzumelden, ein neues Personal Access Token in GitHub zu erstellen (mit repo-Rechten) und dieses in Desktop zu verwenden. Alternativ Remote-URL prüfen (ssh vs https) und sicherstellen, dass der SSH-Key im SSH-Agenten geladen und GitHub bekannt ist. Bei Netzwerkproblemen Proxy-/Firewall-Einstellungen prüfen oder IT kontaktieren. Wenn nötig, Logs aus GitHub Desktop exportieren und mit der Fehlermeldung vergleichen, um die Ursache konkreter zu finden.
