Skip to main content

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:

    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Ă€ĂŸ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.

          deinem Projekt geht. Das hilft dir und anderen spÀter, den Zweck des Repositories schnell zu erfassen.

          Visibility – Public oder PrivatePrivate:

          • Public: Jeder kann dein Repository sehen (aber nicht bearbeiten, es sei denn,nur du gibstkannst explizitÄnderungen Rechte)pushen, solange du niemanden einlĂ€dst).
          • Private: Nur du und Personen,eingeladene die du einlĂ€dst,Personen können das Repository sehensehen.

          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:

          Setze

          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 git pushBefehle ausfĂŒhrst, weiß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:

            Protokoll URL-Format Wann verwenden HTTPS:HTTPS https://github.com/deinbenutzername/mein-webprojekt.benutzername/repo.git Einfacher Einstieg, aber du musst dich bei jedem Push authentifizieren (oder einen Credential Manager nutzen) SSH:SSH git@github.com:deinbenutzername/mein-webprojekt.benutzername/repo.git

            Welche sollst du verwenden?

              SSH: Empfohlen, wenn du SSH-Keys eingerichtet hast – keine Passwort-Eingabe nötig

              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

              HTTPS:deinen FunktioniertGitHub-Zugangsdaten auch,gefragt. erfordert

              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)

              1. Ö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 hierGib origin einein. (dasDas ist dieder StandardbezeichnungStandardname fĂŒr dasdie Haupt-Remote)Remote und wird von Git und den meisten Tools erwartet.
                • URL: FĂŒge die SSH-kopierte GitHub-URL ein,ein die(HTTPS duoder von GitHub kopiert hast
                  Beispiel: git@github.com:deinbenutzername/mein-webprojekt.gitSSH).

                Klicke auf OK.

                DasFertig!

                Fenster

                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):

                  schicken
                  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)

                  1. Push-Dialog öffnen

                    Gehe im MenĂŒ zu Git → Push

                    (Alternativ:oder Tastenkombinationnutze Strg+Shift+das TastenkĂŒrzel Ctrl + Shift + K auf Windows/Linux bzw. Cmd+Shift+Cmd + Shift + K auf macOS).

                  2. EsPush-Vorschau öffnetprĂŒfen

                    sich

                    PhpStorm zeigt dir an, welche Commits gepusht werden – das Pushsollten alle deine bisherigen lokalen Commits-Fenster. Hiersein.

                    Du siehst du:

                    auch,
                      zu
                    • Branch: Welcherwelchem Branch gepusht werdenwird. sollStandardmĂ€ĂŸig (z.ist B.das main oder master)
                    Commits: Eine Liste aller Commits, die noch nicht auf GitHub sind Push to: Das Ziel, also origin/main (oder origin/master, je nach Branch-Name)deiner Git-Konfiguration).

                    Wichtig: Beim allerersten Push musstausfĂŒhren

                    du PhpStorm mitteilen, dass du einen neuen Branch auf dem Remote erstellen möchtest. Das passiert automatisch, wenn du

                    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 lokaler main-Branch mit dem Remote-Branch origin/main verknĂŒpft ist. Danach reicht ein einfaches git 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

                        1. Auf GitHub nachschauen

                          Öffne dein Repository auf GitHub (z. B. https://github.com/deinbenutzername/dein-benutzername/mein-webprojekt). Du solltest jetzt alle deine Dateien und die gesamte Commit-Historie sehen können.

                        2. 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 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:

                              HEAD: Dein aktueller Stand main: Dein lokaler Branch origin/main: Der Stand auf GitHub

                              Wennnochmal alle dreiSchritte aufim demselbenÜberblick:

                              Commit
                              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:

                              1. FĂŒhreZiehe zuerst einen Pull durch: Git → Pull

                              Git versucht, die Remote-Änderungen mit deinengit lokalenpull zuorigin mergenmain --allow-unrelated-histories FallsLöse eineventuelle Merge-Konflikt entsteht, löse ihn (siehe entsprechendes Kapitel)Konflikte DanachCommitte kannstund dupushe normal pushenerneut

                              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-Key hast und ob er zubei GitHub hinzugefĂŒgthinterlegt wurdeist (sieheunter Kapitel zu SSH-Keys)

                                  github.com/settings/keys)
                                • Teste die Verbindung immit Terminal:

                                  ssh -T git@github.com
                                  

                                  Du 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ĂŒhredie einenURL Pullauf mitTippfehler

                              derStelle Optionsicher, --allow-unrelated-histories durch:
                              git pull origin main --allow-unrelated-histories
                              

                              (Das musstdass du imbei TerminalGitHub machen,angemeldet PhpStorm bietet diese Option nicht direkt an)

                              bist Bei

                              Löseprivaten eventuelleRepos: Merge-Konflikte

                              PrĂŒfe, ob dein Account Zugriff hat

                              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?danach weitergeht

                              AbNach jetztdem istersten Push Àndert sich dein Workflow ganznur einfach:minimal:

                              1. Lokal arbeiten:arbeiten und committen Dateien Ă€ndern, committen– wie gewohntbisher
                              2. RegelmĂ€ĂŸig pushen:pushen Git → Push,– um deine Änderungen zuauf GitHub zu schickensichern (Git → Push oder Ctrl + Shift + K)
                              3. Bei Bedarf pullen:pullen Falls– falls du von einem anderen RechnerGerĂ€t aus gepusht hast oder jemandmit anderesanderen Änderungenzusammenarbeitest gemacht(Git hat→ Pull)

                              Die

                              Tipp:VerknĂŒpfung Gewöhnezwischen dir an, nach jedem abgeschlossenen Feature oder Arbeitstag zu pushen. So ist dein Code immer gesichertlokalem und duRemote-Repository kannstbleibt vondauerhaft ĂŒberallbestehen weitermachen.

                              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. 🚀🎉