Der perfekte Workflow mit Git, GitHub und SSH

In dieser Lektion konzentrieren wir uns auf den Workflow. Im Einzelnen verwenden wir die hilfreichen GitHub-Service-Hooks, um ein Projekt auf unserem Personal Server automatisch zu aktualisieren, wenn Updates in ein GitHub-Repo übertragen werden.


Bevorzugen Sie ein Video-Tutorial?


Schritt 1 - Erstellen Sie ein Git Repo

Wir brauchen auf jeden Fall ein Projekt, mit dem wir spielen können, richtig? Lass uns das jetzt machen. Erstellen Sie mit dem von Ihnen bevorzugten Werkzeug (ich würde Structurer empfehlen) ein neues Verzeichnis mit dem Namen awesomeProject, und füge eine hinzu index.html Datei. Fühlen Sie sich frei, dies vorerst mit etwas Kauderwelsch zu füllen.

Mit unserem Testverzeichnis erstellen wir unser erstes Git-Commit.

Wenn Sie mit Git nicht vertraut sind, empfehle ich Ihnen dringend, zunächst "Einfache Versionskontrolle mit Git" zu lesen.

Öffnen Sie die Befehlszeile:

 CD-Pfad / zu / awesomeProject git init git add. git commit -m 'Erstes Commit'

Diejenigen, die mit Git vertraut sind, sollten sich wie zu Hause fühlen. Wir erstellen ein Git-Repo, fügen alle Dateien zum Staging-Bereich hinzu und erstellen dann unser erstes Commit.


Schritt 2 - Hochladen in GitHub

Im nächsten Schritt laden Sie unser Projekt in GitHub hoch. Auf diese Weise können wir leicht eine anrufen git ziehen Um dieses Projekt von einem beliebigen Computer / Server herunterzuladen, den wir wünschen.

Wenn Sie sich mit GitHub nicht auskennen und noch keinen Account erstellt haben, lesen Sie Terminal, Git und GitHub für den Rest von uns.

Beginnen Sie mit dem Erstellen eines neuen Git-Repositorys.

Als Nächstes müssen Sie einige Details zu Ihrem Projekt angeben. Das ist einfach:

Und schließlich, da wir bereits mit einem vorhandenen Git-Repo arbeiten, müssen wir nur Folgendes ausführen:

 git remote add origin [email protected]: Ihr-Benutzername / awesomeProject.git git push -u Ursprungsmaster

Damit aus dem Weg, unser awesomeProject ist jetzt auf GitHub verfügbar. Das war einfach!


Schritt 3 - SSH

Nun brauchen wir sicherlich eine Live-Vorschau für unser Projekt, die idealerweise auf unserem eigenen Server gespeichert ist. Dies kann jedoch manchmal schmerzhaft sein. Übertragen Sie Ihre Aktualisierungen auf GitHub, melden Sie sich bei Ihrem Server an, übertragen Sie das aktualisierte Verzeichnis manuell, usw. Zugegeben, dies dauert nur einen Moment oder so. Wenn Sie jedoch tagsüber mehrere Änderungen vornehmen, kann dies schnell zu einer Belastung werden.

Aber Schritt für Schritt. Wir werden dieses Dilemma in Schritt 4 angehen. Im Moment ziehen wir einfach unser Git-Repo auf unseren Server. Dazu müssen wir SSH einschalten.

Je nach Host variieren die SSH-Anmeldeinformationen geringfügig. Durchsuchen Sie Google nach "Name Ihres Hosts SSH" und Sie finden mit Sicherheit die erforderlichen Anweisungen. Sobald Sie fertig sind, gehen wir weiter:

Wir werden meinen persönlichen Server als Beispiel verwenden:

 ssh [email protected] 

Und mit diesen zwei Zeilen sind wir dabei!

Nächsten wir CD in das übergeordnete Verzeichnis, wo wir speichern möchten awesomeProject. Für mich wird das sein: CD-Domänen / demo.jeffrey-way.com / html /. Ändern Sie dies natürlich entsprechend Ihrer eigenen Verzeichnisstruktur.

Git-Klon

Lassen Sie uns jetzt das GitHub-Repo klonen.

 git clone [email protected]: Ihr-Benutzername / awesomeProject.git

Geben Sie diesem Befehl ein paar Sekunden, aber bevor Sie es wissen, ist dieses Verzeichnis jetzt auf Ihrem Server verfügbar und könnte in meinem Fall unter folgender Adresse angezeigt werden: http://demo.jeffrey-way.com/awesomeProject.


Schritt 4 - Verbindung erstellen

Das inhärente Problem an diesem Punkt ist, dass es keine spezifische Verbindung zwischen unserem GitHub-Repo und dem auf unserem Server gespeicherten Verzeichnis gibt - zumindest keine automatisierte Verbindung. Wenn wir zum Beispiel unsere Quelldateien auf unserem lokalen Computer aktualisieren und die Änderungen dann in GitHub verschieben:

 git add index.html git commit -m "Hinzugefügtes Foto des tanzenden Huhns" git Push-Ursprungsmaster

Diese Änderungen werden sicherlich nicht auf unserem Server angezeigt. Natürlich nicht! Dazu müssen wir - erneut - SSH in unseren Server einbauen, CD zum awesomeProject Verzeichnis und führen Sie ein anderes git ziehen um die aktualisierten Quelldateien einzubringen.

Wäre es nicht toll, wenn diese neuen Quelldateien bei jedem Update von GitHub automatisch auf unserem Live-Vorschauserver aktualisiert würden?

Wie sich herausstellt, können wir dies mit GitHub-Service-Hooks ganz leicht tun.

Sie können auf diese Seite zugreifen, indem Sie in Ihrem GitHub-Repo auf die Schaltfläche "Admin" klicken und dann auf "Service Hooks" klicken. Die Option "Post-Receive URL" weist GitHub an, jedes Mal, wenn Sie in Ihr GitHub-Repo wechseln, eine POST-Anforderung an die angegebene Seite zu senden. Genau das brauchen wir!

"Wir werden diese URLs mit POST-Anfragen treffen, wenn Sie uns pushen und Informationen über den Push weiterleiten."

Damit dies funktioniert, müssen wir eine weitere Datei erstellen, die den Prozess der Ausführung von git ziehen. Fügen Sie eine neue Datei hinzu github.php (oder alles, was Sie wollen - am besten mehr vage), und fügen Sie hinzu:

  

Also denkst du jetzt: "Jeff ist verrückt geworden. Du kannst kein Bash-Skript in einen PHP-String schreiben." Gut? Ja, das ist möglich, sobald Sie feststellen, dass es sich nicht um einfache Anführungszeichen handelt, werden sie zurückgesteckt.

Wenn Sie eine Sequenz in Back-Ticks in PHP einbetten, wird sie als Bash-Skript behandelt. Tatsächlich ist es identisch mit der Verwendung der bash_exec-Funktion.

Speichern Sie diese Datei und laden Sie sie in die hoch awesomeProject Verzeichnis auf Ihrem Server. Wenn Sie fertig sind, kopieren Sie die URL in diese Datei und fügen Sie sie in das Textfeld "Post-Receive URL" ein. In meinem Fall wäre die URL http://demo.jeffrey-way.com/awesomeProject/github.php.

Mit diesem an Ort und Stelle, jedes Mal, wenn Sie drücken In Ihrem GitHub-Repo wird diese Datei aufgerufen und die awesomeProject Das Verzeichnis auf Ihrem Server wird automatisch aktualisiert, ohne dass Sie einen Finger bewegen müssen. Ziemlich schick, ay?


Sie könnten auch genießen:

  • Den Hang von GitHub bekommen
  • Terminal, Git und GitHub für den Rest von uns
  • Einfache Versionskontrolle mit Git
  • Gute Arbeit mit Git - eBook