Lokales Git-Repository mit GitHub verbinden đ
Du hast also bereitsschon fleiĂig lokal mit Git gearbeitet, Commits erstelltcommitet und möchtest nunjetzt deindeinen ProjektCode aufsicher in der Cloud haben â sei es als Backup, um von mehreren GerĂ€ten darauf zuzugreifen oder um spĂ€ter mit anderen zusammenzuarbeiten. Die Verbindung zwischen deinem lokalen Repository und GitHub hochladen. Dasherzustellen ist ein wichtiger Schritt: Dein Code wird dadurch gesichert, von ĂŒberall zugĂ€nglichMeilenstein, und duich legstzeige dendir Grundsteinhier fĂŒr mögliche Zusammenarbeit. In diesem Kapitel erfĂ€hrst du Schritt fĂŒr Schritt,ausfĂŒhrlich, wie dudas ein Repository auf GitHub erstellst und es mit deinem lokalen Projekt verknĂŒpfst.funktioniert.
WarumDas ĂŒberhauptGrundprinzip ein Remote-Repository auf GitHub?verstehen
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:
Das Prinzip ist einfach: Dein lokales Repository bleibt auf deinem Computer, und du synchronisierst es regelmĂ€Ăighilfreich mitzu demverstehen, Remote-Repositorywas aufhier GitHub.eigentlich passiert:
flowchart LR
LOCAL["đ»đ Lokales Repository\nauf deinem Computer"] -->|git push| REMOTE["âïž Remote Repository\nauf GitHub"]
LOCAL -->|git push\nĂnderungen hochladen| REMOTE
REMOTE -->|git pull\nĂnderungen herunterladen|pull| LOCAL
Dein lokales Repository enthĂ€lt bereits deine gesamte Commit-Historie. GitHub stellt dir einen Remote zur VerfĂŒgung â das ist im Grunde eine Kopie deines Repositories auf einem Server, mit der du dein lokales Repository synchronisieren kannst. Die Verbindung zwischen beiden nennt man Remote-VerknĂŒpfung, und der Standard-Name fĂŒr die Haupt-Remote ist origin.
Schritt 1: NeuesEin neues Repository auf GitHub erstellen
1.1
ZunĂ€chst brauchst du ein âZuhause" fĂŒr deinen Code auf GitHub. Dieses Repository erstellst du direkt auf der GitHub-Website.
Bei GitHub anmelden
Ăffne deinen Browser und gehe zu github.com. Meldeund melde dich mit deinem Account anan. (fallsFalls du noch keinen hast, schaumusst dirdu daszuerst entsprechendeeinen Kapitel zur Account-Erstellung an).erstellen.
1.2 Repository anlegen
Neues Repository anlegen
Klicke oben rechts auf das Plus-+-Symbol und wÀhle New repository in(oder dergehe oberendirekt rechtenzu Ecke der GitHub-OberflÀche (neben deinem Profilbild)github.com/new).
WĂ€hleRepository-Einstellungen âNew repository"festlegen aus dem Dropdown-MenĂŒ.
Jetzt
Du landest auf der Seite âCreate a new repository". Hier musstsiehst du einigeein EinstellungenFormular vornehmen:mit mehreren Optionen:
Repository namename:
Gib deinem RepositoryWĂ€hle einen aussagekrĂ€ftigen Namen.Namen DieserfĂŒr solltedein idealerweiseProjekt. mitAm dembesten verwendest du den gleichen Namen deineswie lokalendein Projektordnerslokaler ĂŒbereinstimmen,Projektordner mussâ das ist zwar nicht zwingend notwendig, macht es aber nicht.ĂŒbersichtlicher. Beispiel: mein-webprojekt
Tipp:Â Verwende nur Kleinbuchstaben, Zahlen und Bindestriche. Keine Leerzeichen oder Sonderzeichen.
Description (optional)
: Eine kurze Beschreibung,Beschreibung deines Projekts. Das ist besonders nĂŒtzlich, wenn du das Repository spĂ€ter öffentlich machst oder selbst nach Monaten noch wissen willst, worum es ingeht.
Visibility â Public oder PrivatePrivate:
- Public: Jeder kann dein Repository sehen (aber
nicht bearbeiten, es sei denn,nur dugibstkannstexplizitĂnderungenRechte)pushen, solange du niemanden einlĂ€dst). - Private: Nur du und
Personen,eingeladenedie du einlÀdst,Personen können das Repositorysehensehen.
FĂŒr Lernprojektepersönliche Projekte oder Open-Source-CodeLernprojekte wĂ€hlstist âPrivate" oft die bessere Wahl â du meistkannst âPublic".es FĂŒrspĂ€ter persönlichejederzeit oderöffentlich geschĂ€ftliche Projekte eher âPrivate".machen.
Initialize this repository withâŠÂ â ïž Wichtig:
Da du bereits ein lokales Repository mit Commits hast, solltest du hier keinenichts auswÀhlen HÀkchen bei::
- â Kein HĂ€kchen bei âAdd a README file"
- â Kein HĂ€kchen bei âAdd .gitignore"
- â Kein HĂ€kchen bei âChoose a license"
Warum? WeilWenn deinGitHub diese Dateien automatisch erstellt, hat das neue Remote-Repository bereits einen Commit. Dein lokales Repository bereitshat existiertaber eine andere Historie â 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. Dasdas fĂŒhrt zu unnötigenKonflikten Merge-Konflikten.beim ersten Push. Ein komplett leeres Repository lĂ€sst sich dagegen problemlos mit deinem bestehenden lokalen Repository verbinden.
Repository erstellen
Klicke auf âCreate repository"repository. GitHub erstellt das Repository und zeigt dir eine Seite mit Anleitungen â genau diese werden wir im nĂ€chsten Schritt nutzen.
Schritt 2: Die VerbindungRemote-URL verstehen â was ist ein âRemote"?kopieren
Nach demder ErstellenErstellung zeigt GitHub dir GitHub eine Seite mit verschiedenen Anleitungen.Optionen. BevorDa wirdu weitermachen,bereits ein kurzerlokales Exkurs:Repository hast, interessiert dich der Abschnitt ââŠor push an existing repository from the command line".
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.
WennBevor du spĂ€terdie Befehle ausfĂŒhrst, git pushweiĂbrauchst Gitdu durchdie diesen Remote-Verweis, wohin es deine Commits schicken soll.
Schritt 3: Remote-URL vondeines Repositories. 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 gibtbietet zwei Varianten:Varianten an:
https://github.com/deinbenutzername/mein-webprojekt.benutzername/repo.git
Einfacher Einstieg, aber du musst dich bei jedem Push authentifizieren (oder einen Credential Manager nutzen)
git@github.com:deinbenutzername/mein-webprojekt.benutzername/repo.git
Welche sollst du verwenden?
Falls du SSH-Keys bereits eingerichtet hast (siehe entsprechendesKapitel Kapitel)zu SSH-Keys), wĂ€hle SSH. DuAnsonsten musstfunktioniert HTTPS genauso gut â du wirst dann niebeim wiederersten PasswörterPush eingeben.nach
Klicke aberauf beiden jedementsprechenden Push/PullTab (HTTPS oder SSH) und kopiere die Eingabeangezeigte 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).URL.
Schritt 4:3: Remote in PhpStorm hinzufĂŒgen
Jetzt kommtverbindest der spannende Teil: Du verknĂŒpfstdu dein lokales Repository mit dem frisch erstellten GitHub-Repository. Das machst du, indem du eine Remote auf GitHub.hinzufĂŒgst.
4.1Variante Git-Remotes-FensterA: öffnenĂber das PhpStorm-MenĂŒ (empfohlen fĂŒr Einsteiger)
-
ĂffneGit-MenĂŒdein Projekt in PhpStorm.öffnen
Gehe imin MenĂŒPhpStorm zu Git â Manage RemotesâŠ
(Alternativ:in Ă€lteren Versionen: VCS â Git â RemotesâŠ, je nach PhpStorm-Version)).
Neue Remote hinzufĂŒgen
Es öffnet sich ein kleinesDialog, Fensterder mit dem Titel âGit Remotes". Hier siehst du eine Liste alleralle konfigurierten Remotes anzeigt â diebei einem frischen lokalen Repository ist momentandiese wahrscheinlichListe leer.
4.2 Remote hinzufĂŒgen
Klicke auf das Plus-Symbol+-Symbol, (+)um linkseine obenneue imRemote Fenster.hinzuzufĂŒgen.
EsName öffnetund sichURL ein Dialog âDefine Remote":eingeben
- Name:
Trage hierGiborigineinein.(dasDas istdiederStandardbezeichnungStandardname fĂŒrdasdie Haupt-Remote)Remote und wird von Git und den meisten Tools erwartet. - URL: FĂŒge die
SSH-kopierte GitHub-URLein,eindie(HTTPSduodervon GitHub kopiert hastBeispiel:SSH).git@github.com:deinbenutzername/mein-webprojekt.git
Klicke auf OK.
DasFertig!
Die âGitRemote Remotes" zeigtist jetzt deinenkonfiguriert. neuenPhpStorm RemoteweiĂ an.nun, Klickewo erneutdein Code auf OK,GitHub um das Fenster zu schlieĂen.âwohnt".
Variante B: Ăber das Terminal in PhpStorm
WasFalls istdu passiert?
lieber mit Befehlen arbeitest, kannst du das integrierte Terminal nutzen:
Ăffne das Terminal in PhpStorm hat(View inâ deinemTool lokalenWindows Repositoryâ Terminal oder Alt + F12).
Gib folgenden Befehl ein (ersetze die Information gespeichert, dass es ein Remote-Repository namens origin gibt, das unter der angegebenen URL erreichbar ist. Git weià jetzt, wohin esdurch deine Commitseigene):
git soll.remote add origin https://github.com/dein-benutzername/mein-webprojekt.git
Oder mit SSH:
git remote add origin git@github.com:dein-benutzername/mein-webprojekt.git
ĂberprĂŒfe, ob die Remote korrekt hinzugefĂŒgt wurde:
git remote -v
Du solltest so etwas sehen:
origin https://github.com/dein-benutzername/mein-webprojekt.git (fetch)
origin https://github.com/dein-benutzername/mein-webprojekt.git (push)
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.14: Den ersten Push durchfĂŒhren
Jetzt kommt der spannende Moment: Du lÀdst deine gesamte lokale Commit-Historie auf GitHub hoch!
In PhpStorm (grafisch)
-
Push-Dialog öffnen
Gehe
 im MenĂŒzu Git â PushâŠ
(Alternativ:oderTastenkombinationnutzeStrg+Shift+das TastenkĂŒrzelCtrl + Shift + Kauf Windows/Linux bzw.Cmd+Shift+Cmd + Shift + Kauf macOS). -
EsPush-VorschauöffnetprĂŒfensichPhpStorm zeigt dir an, welche Commits gepusht werden â das
Pushsollten alle deine bisherigen lokalen Commits-Fenster.Hiersein.Du siehst
auch,du: Branch: Welcherwelchem Branch gepushtwerdenwird.sollStandardmĂ€Ăig(z.istB.dasmain odermaster)
origin/main (oder origin/master, je nach Wichtig:Â Beim allerersten Push musstausfĂŒhren
Klicke auf Push. klickst.Falls du HTTPS verwendest und noch keine Zugangsdaten gespeichert hast, wirst du nach deinem GitHub-Benutzernamen und Passwort gefragt (oder nach einem Personal Access Token â dazu gleich mehr).
Im Terminal
Alternativ kannst du den Push auch ĂŒber das Terminal durchfĂŒhren:
git push -u origin main
đĄ Was bedeutet
-u?Die Option
-u (oder--set-upstream) sorgt dafĂŒr, dass Git sich merkt, dass dein lokalermain-Branch mit dem Remote-Branchorigin/main verknĂŒpft ist. Danach reicht ein einfachesgit push ohne weitere Parameter.
Falls dein Hauptbranch master heiĂt (bei Ă€lteren Git-Versionen oder Projekten), ersetze main durch master.
Authentifizierung bei HTTPS: Personal Access Token (PAT)
Falls du eineHTTPS Warnungverwendest siehstund wieGitHub âThenach pusheinem wasPasswort rejectedfragt, becausefunktioniert thedein remotenormales containsGitHub-Passwort worknicht thatmehr youfĂŒr doGit-Operationen. notStattdessen havebenötigst locally",du lieseinen weiterPersonal untenAccess imToken Abschnitt âHĂ€ufige Probleme"(PAT).
Einen PAT erstellen
Gehe auf GitHub zu Settings â Developer settings â Personal access tokens â Tokens (classic)Â (oder direkt: github.com/settings/tokens).
Klicke auf PushGenerate new token (classic).
Gib dem Token einen beschreibenden Namen (z. B. âPhpStorm auf Laptop").
WĂ€hle ein Ablaufdatum â fĂŒr mehr Sicherheit empfiehlt sich ein begrenzter Zeitraum (z. B. 90 Tage), den du bei Bedarf verlĂ€ngern kannst.
Setze mindestens folgende Berechtigungen (Scopes):
repo â Vollzugriff auf Repositories (nötig fĂŒr Push/Pull)
Klicke auf Generate token und kopiere den Token sofort â er wird nur einmal angezeigt!
5.2Den WasToken passiert jetzt?verwenden
Wenn PhpStorm sendet(oder alleGit) deinenach lokalendem CommitsPasswort anfragt, GitHub.gibst Dudu siehststatt untendeines rechtsGitHub-Passworts eineden Benachrichtigung,Personal sobaldAccess Token ein.
đĄ Tipp: PhpStorm kann den Token speichern, sodass du ihn nicht jedes Mal neu eingeben musst. Achte darauf, dass in den Einstellungen unter Appearance & Behavior â System Settings â Passwords ein sicherer Speicherort konfiguriert ist (z. B. der
Push erfolgreich war.SystemschlĂŒsselbund).
Gehe zurĂŒck zu GitHub und lade die Seite deines Repositories neu â du solltest jetzt alle deine Dateien und die Commit-Historie sehen! đ
SchrittNach 6:dem Push: ĂberprĂŒfen, ob alles geklappt hat â
Auf GitHub
-
Auf GitHub nachschauen
Ăffne dein Repository auf GitHub (z. B.
https://github.com/). Du solltest jetzt alle deine Dateien und die gesamte Commit-Historie sehen können.deinbenutzername/dein-benutzername/mein-webprojekt -
Du solltest sehen: Deine Projektdateien im Hauptverzeichnis
mainKlicke auf âX commits"Â (wobei X die Anzahl deiner Commits ist) â du siehst deine gesamte Commit-Historie mit allen Nachrichten.
In PhpStorm
Ăffne das Git Git-Log (Git â Show Git Log)Log). Du siehst jetzt neben deinen lokalen Branches auch den Remote-Branch origin/main, der auf denselben Commit zeigt wie dein lokaler main.
Zusammenfassung des gesamten Ablaufs
NebenHier deinen Commits solltest du jetzt kleine Labels sehen:
Wennnochmal alle dreiSchritte aufim demselbenĂberblick:
flowchart stehen,TD
istA["1. Leeres Repository\nauf GitHub erstellen"] --> B["2. Remote-URL kopieren\nHTTPS oder SSH"]
B --> C["3. Remote in PhpStorm\nhinzufuegen via\nGit > Manage Remotes"]
C --> D["4. Ersten Push durchfuehren\nGit > Push"]
D --> E["5. Auf GitHub pruefen\nob alles synchron!angekommen â
ist"]
HÀufige Probleme und Lösungen
ProblemâFailed 1:to âThe push waspush: rejected becauseâ the remote contains work that you do not have locally"non-fast-forward"
Ursache:Dieser DuFehler tritt auf, wenn das Remote-Repository bereits Commits enthĂ€lt, die du lokal nicht hast beim Erstellen des GitHub-Repositories doch Dateien hinzugefĂŒgt (z. B. READMEweil oderdu bei der Erstellung versehentlich eine README-Datei hast anlegen lassen).gitignore), die lokal nicht existieren.
Lösung:
FĂŒhreZiehe zuerst einenPull durch:Git â PullâŠ
git lokalenpull zuorigin mergenmain --allow-unrelated-histories
Besser: Erstelle das GitHub-Repository wirklich komplett leer (sieheohne SchrittREADME, 1.2)ohne .gitignore, ohne Lizenz).
Problem 2: âPermission denied (publickey)"
Ursache:Dieser DeinFehler erscheint, wenn du SSH verwendest, aber dein SSH-Key ist nicht korrekt eingerichtet oder GitHub kennt ihn nicht.ist.
Lösung:
ĂberprĂŒfe, ob
du einendein SSH-Keyhast und ob er zubei GitHubhinzugefĂŒgthinterlegtwurdeist (sieheunterKapitel zu SSH-Keys)github.com/settings/keys)Teste die Verbindung
immitTerminal:ssh -T git@github.comDu solltest eine BegrĂŒĂung von GitHub sehen.- Alternativ: Wechsle zu HTTPS, bis du SSH korrekt eingerichtet hast
âRepository not found"
FallsEntweder existiert das nichtRepository funktioniert,nicht, verwendeder vorĂŒbergehendName HTTPSist stattfalsch SSHgeschrieben, oder du hast keine Zugriffsrechte (Ă€nderebei dieprivaten Remote-URL entsprechend)Repositories).
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:
- ĂberprĂŒfe
FĂŒhredieeinenURLPullaufmitTippfehler
- ĂberprĂŒfe
--allow-unrelated-historiesgit pull origin main --allow-unrelated-histories
(Das musstdass du imbei TerminalGitHub machen,angemeldet PhpStorm bietet diese Option nicht direkt an)
Löseprivaten eventuelleRepos: 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:
git remote add origin <URL>git push -u origin maingit remote -vWie geht es weiter?danach weitergeht
AbNach jetztdem istersten Push Àndert sich dein Workflow ganznur einfach:minimal:
- Lokal
arbeiten:arbeiten und committenDateien Ă€ndern, committenâ wiegewohntbisher - RegelmĂ€Ăig
pushen:pushenGit â Push,â um deine Ănderungenzuauf GitHub zuschickensichern (Git â Push oderCtrl + Shift + K) - Bei Bedarf
pullen:pullenFallsâ falls du von einem anderenRechnerGerĂ€t aus gepusht hast oderjemandmitanderesanderenĂnderungenzusammenarbeitestgemacht(Git)hatâ Pull
Die
Tipp:VerknĂŒpfungGewöhnezwischendir an,nach jedem abgeschlossenen Feature oder Arbeitstag zu pushen. So ist dein Code immer gesichertlokalem undduRemote-RepositorykannstbleibtvondauerhaftĂŒberallbestehenweitermachen.
Im nĂ€chsten Kapitel erfĂ€hrst du, wieâ du einmusst bestehendesdie RepositoryRemote-Konfiguration vonnur GitHubeinmal aufpro einenProjekt neuendurchfĂŒhren. Computer clonst und wie du mit Pull Ănderungen von GitHub holst. đđ