Lokales Git-Repository mit GitHub verbinden – ausführliche Anleitung 🔗
Du hast also bereits lokal mit Git gearbeitet, Commits erstellt und möchtest nun dein Projekt auf GitHub hochladen. Das ist ein wichtiger Schritt: Dein Code wird dadurch gesichert, von überall zugänglich und du legst den Grundstein für mögliche Zusammenarbeit. In diesem Kapitel erfährst du Schritt für Schritt, wie du ein Repository auf GitHub erstellst und es mit deinem lokalen Projekt verknüpfst.
Warum überhaupt ein Remote-Repository auf GitHub?
Bevor wir loslegen, kurz zur Motivation: Dein lokales Git-Repository existiert nur auf deinem Computer. Wenn deine Festplatte kaputtgeht oder du von einem anderen Rechner aus arbeiten möchtest, hast du ein Problem. Ein Remote-Repository auf GitHub löst das:
- Backup: Dein Code ist sicher in der Cloud gespeichert
- Zugriff von überall: Du kannst von jedem Gerät aus auf dein Projekt zugreifen
- Zusammenarbeit: Andere können deinen Code sehen, kommentieren oder daran mitarbeiten
- Portfolio: Öffentliche Repositories zeigen potenziellen Arbeitgebern deine Fähigkeiten
Das Prinzip ist einfach: Dein lokales Repository bleibt auf deinem Computer, und du synchronisierst es regelmäßig mit dem Remote-Repository auf GitHub.
flowchart LR
LOCAL["💻 Lokales Repository\nauf deinem Computer"]
REMOTE["☁️ Remote Repository\nauf GitHub"]
LOCAL -->|git push\nÄnderungen hochladen| REMOTE
REMOTE -->|git pull\nÄnderungen herunterladen| LOCAL
Schritt 1: Neues Repository auf GitHub erstellen
1.1 Bei GitHub anmelden
Öffne deinen Browser und gehe zu github.com. Melde dich mit deinem Account an (falls du noch keinen hast, schau dir das entsprechende Kapitel zur Account-Erstellung an).
1.2 Repository anlegen
-
Klicke auf das Plus-Symbol in der oberen rechten Ecke der GitHub-Oberfläche (neben deinem Profilbild).
-
Wähle „New repository" aus dem Dropdown-Menü.
-
Du landest auf der Seite „Create a new repository". Hier musst du einige Einstellungen vornehmen:
Repository name
Gib deinem Repository einen aussagekräftigen Namen. Dieser sollte idealerweise mit dem Namen deines lokalen Projektordners übereinstimmen, muss es aber nicht. Beispiel:mein-webprojektTipp: Verwende nur Kleinbuchstaben, Zahlen und Bindestriche. Keine Leerzeichen oder Sonderzeichen.
Description (optional)
Eine kurze Beschreibung, worum es in deinem Projekt geht. Das hilft dir und anderen später, den Zweck des Repositories schnell zu erfassen.Public oder Private
- Public: Jeder kann dein Repository sehen (aber nicht bearbeiten, es sei denn, du gibst explizit Rechte)
- Private: Nur du und Personen, die du einlädst, können das Repository sehen
Für Lernprojekte oder Open-Source-Code wählst du meist „Public". Für persönliche oder geschäftliche Projekte eher „Private".
-
Wichtig: Setze keine Häkchen bei:
- „Add a README file"
- „Add .gitignore"
- „Choose a license"
Warum? Weil dein lokales Repository bereits existiert und möglicherweise schon Commits enthält. Wenn du hier Dateien hinzufügst, erstellt GitHub einen initialen Commit, der mit deiner lokalen Historie kollidieren kann. Das führt zu unnötigen Merge-Konflikten.
-
Klicke auf „Create repository"
Schritt 2: Die Verbindung verstehen – was ist ein „Remote"?
Nach dem Erstellen zeigt dir GitHub eine Seite mit verschiedenen Anleitungen. Bevor wir weitermachen, ein kurzer Exkurs:
Ein Remote ist in Git einfach ein Verweis auf ein Repository an einem anderen Ort – in deinem Fall auf GitHub. Du kannst mehrere Remotes haben, aber standardmäßig gibt es einen, der origin heißt.
Wenn du später git push ausführst, weiß Git durch diesen Remote-Verweis, wohin es deine Commits schicken soll.
Schritt 3: Remote-URL von GitHub kopieren
Auf der Seite, die GitHub dir nach dem Erstellen des Repositories zeigt, findest du oben einen Bereich mit der Überschrift „Quick setup". Dort siehst du eine URL – das ist die Adresse deines neuen Repositories.
Es gibt zwei Varianten:
- HTTPS:
https://github.com/deinbenutzername/mein-webprojekt.git - SSH:
git@github.com:deinbenutzername/mein-webprojekt.git
Welche sollst du verwenden?
- SSH: Empfohlen, wenn du SSH-Keys eingerichtet hast (siehe entsprechendes Kapitel). Du musst dann nie wieder Passwörter eingeben.
- HTTPS: Funktioniert auch, erfordert aber bei jedem Push/Pull die Eingabe eines Personal Access Tokens (PAT).
Für diese Anleitung gehen wir davon aus, dass du SSH verwendest. Wenn du HTTPS nutzen möchtest, funktioniert der Ablauf identisch – nur die URL ist anders.
Kopiere die SSH-URL (es gibt einen Button zum Kopieren rechts neben der URL).
Schritt 4: Remote in PhpStorm hinzufügen
Jetzt kommt der spannende Teil: Du verknüpfst dein lokales Repository mit dem Remote auf GitHub.
4.1 Git-Remotes-Fenster öffnen
-
Öffne dein Projekt in PhpStorm.
-
Gehe im Menü zu Git → Manage Remotes…
(Alternativ: VCS → Git → Remotes…, je nach PhpStorm-Version) -
Es öffnet sich ein kleines Fenster mit dem Titel „Git Remotes". Hier siehst du eine Liste aller konfigurierten Remotes – die ist momentan wahrscheinlich leer.
4.2 Remote hinzufügen
-
Klicke auf das Plus-Symbol (
+) links oben im Fenster. -
Es öffnet sich ein Dialog „Define Remote":
- Name: Trage hier
originein (das ist die Standardbezeichnung für das Haupt-Remote) - URL: Füge die SSH-URL ein, die du von GitHub kopiert hast
Beispiel:git@github.com:deinbenutzername/mein-webprojekt.git
- Name: Trage hier
-
Klicke auf OK.
-
Das Fenster „Git Remotes" zeigt jetzt deinen neuen Remote an. Klicke erneut auf OK, um das Fenster zu schließen.
Was ist passiert?
PhpStorm hat in deinem lokalen Repository die Information gespeichert, dass es ein Remote-Repository namens origin gibt, das unter der angegebenen URL erreichbar ist. Git weiß jetzt, wohin es deine Commits schicken soll.
Schritt 5: Deinen Code zu GitHub hochladen (Push)
Jetzt hast du die Verbindung hergestellt – aber deine Commits sind noch nicht auf GitHub. Dafür musst du sie pushen.
5.1 Den ersten Push durchführen
-
Gehe im Menü zu Git → Push…
(Alternativ: Tastenkombination Strg+Shift+K auf Windows/Linux bzw. Cmd+Shift+K auf macOS) -
Es öffnet sich das Push Commits-Fenster. Hier siehst du:
- Branch: Welcher Branch gepusht werden soll (z. B.
mainodermaster) - Commits: Eine Liste aller Commits, die noch nicht auf GitHub sind
- Push to: Das Ziel, also
origin/main(oderorigin/master, je nach Branch-Name)
- Branch: Welcher Branch gepusht werden soll (z. B.
-
Wichtig: Beim allerersten Push musst du PhpStorm mitteilen, dass du einen neuen Branch auf dem Remote erstellen möchtest. Das passiert automatisch, wenn du auf Push klickst.
Falls du eine Warnung siehst wie „The push was rejected because the remote contains work that you do not have locally", lies weiter unten im Abschnitt „Häufige Probleme".
-
Klicke auf Push.
5.2 Was passiert jetzt?
PhpStorm sendet alle deine lokalen Commits an GitHub. Du siehst unten rechts eine Benachrichtigung, sobald der Push erfolgreich war.
Gehe zurück zu GitHub und lade die Seite deines Repositories neu – du solltest jetzt alle deine Dateien und die Commit-Historie sehen! 🎉
Schritt 6: Überprüfen, ob alles geklappt hat
Auf GitHub
-
Öffne dein Repository auf GitHub (z. B.
https://github.com/deinbenutzername/mein-webprojekt) -
Du solltest sehen:
- Deine Projektdateien im Hauptverzeichnis
- Die Anzahl der Commits (oben links)
- Den Namen deines aktuellen Branches (meist
main)
-
Klicke auf „X commits" (wobei X die Anzahl deiner Commits ist) – du siehst deine gesamte Commit-Historie mit allen Nachrichten.
In PhpStorm
-
Öffne das Git Log (Git → Show Git Log).
-
Neben deinen Commits solltest du jetzt kleine Labels sehen:
- HEAD: Dein aktueller Stand
- main: Dein lokaler Branch
- origin/main: Der Stand auf GitHub
Wenn alle drei auf demselben Commit stehen, ist alles synchron! ✅
Häufige Probleme und Lösungen
Problem 1: „The push was rejected because the remote contains work that you do not have locally"
Ursache: Du hast beim Erstellen des GitHub-Repositories doch Dateien hinzugefügt (z. B. README oder .gitignore), die lokal nicht existieren.
Lösung:
- Führe zuerst einen Pull durch: Git → Pull…
- Git versucht, die Remote-Änderungen mit deinen lokalen zu mergen
- Falls ein Merge-Konflikt entsteht, löse ihn (siehe entsprechendes Kapitel)
- Danach kannst du normal pushen
Besser: Erstelle das GitHub-Repository wirklich komplett leer (siehe Schritt 1.2).
Problem 2: „Permission denied (publickey)"
Ursache: Dein SSH-Key ist nicht korrekt eingerichtet oder GitHub kennt ihn nicht.
Lösung:
-
Überprüfe, ob du einen SSH-Key hast und ob er zu GitHub hinzugefügt wurde (siehe Kapitel zu SSH-Keys)
-
Teste die Verbindung im Terminal:
ssh -T git@github.comDu solltest eine Begrüßung von GitHub sehen.
-
Falls das nicht funktioniert, verwende vorübergehend HTTPS statt SSH (ändere die Remote-URL entsprechend).
Problem 3: „fatal: refusing to merge unrelated histories"
Ursache: Git erkennt die lokale und die Remote-Historie als völlig unabhängig voneinander.
Lösung:
-
Führe einen Pull mit der Option
--allow-unrelated-historiesdurch:git pull origin main --allow-unrelated-histories(Das musst du im Terminal machen, PhpStorm bietet diese Option nicht direkt an)
-
Löse eventuelle Merge-Konflikte
-
Pushe danach normal
Zusammenfassung: Der komplette Ablauf auf einen Blick
flowchart TD
A["1. Repository auf GitHub erstellen\nleer, ohne README"]
B["2. SSH-URL kopieren"]
C["3. In PhpStorm: Git → Manage Remotes"]
D["4. Remote 'origin' mit URL hinzufügen"]
E["5. Git → Push"]
F["6. Commits werden zu GitHub hochgeladen"]
G["7. Überprüfung auf GitHub"]
A --> B
B --> C
C --> D
D --> E
E --> F
F --> G
Die wichtigsten Befehle im Überblick:
| Aktion | In PhpStorm | Im Terminal |
|---|---|---|
| Remote hinzufügen | Git → Manage Remotes | git remote add origin <URL> |
| Commits hochladen | Git → Push | git push -u origin main |
| Stand überprüfen | Git Log ansehen | git remote -v |
Wie geht es weiter?
Ab jetzt ist dein Workflow ganz einfach:
- Lokal arbeiten: Dateien ändern, committen wie gewohnt
- Regelmäßig pushen: Git → Push, um deine Änderungen zu GitHub zu schicken
- Bei Bedarf pullen: Falls du von einem anderen Rechner aus gepusht hast oder jemand anderes Änderungen gemacht hat
Tipp: Gewöhne dir an, nach jedem abgeschlossenen Feature oder Arbeitstag zu pushen. So ist dein Code immer gesichert und du kannst von überall weitermachen.
Im nächsten Kapitel erfährst du, wie du ein bestehendes Repository von GitHub auf einen neuen Computer clonst und wie du mit Pull Änderungen von GitHub holst. 🚀