Ich bin mir nicht sicher, was Sie fragen. Sie sagen, dass Sie auf Ihrem eigenen Server hosten möchten, aber Ihre Frage besagt, dass Sie wie Gitlab-Seiten hosten möchten, die nicht Ihr eigener Server sind.
In jedem Fall hilft das vielleicht
Das ist was ich mache
auf lokalem PC
mkdir folderforwebsite
cd folderforwebsite
git init
echo "hello world" > index.html
git add index.html
git commit -m "initial commit"
Ich habe jetzt ein Repo vor Ort. Kopieren Sie es auf den Server
scp -r ../folderforwebsite username@mydomain.com:/path/from/root/to/webfolder
Jetzt habe ich es auf dem Remote-Server.
ssh name@mydomain.com 'cd path/to/webfolder; git checkout -b live`
Jetzt gibt es auf der Website sowohl einen Master- als auch einen Live-Zweig. Ich mache das seit AFAICT. Du kannst nicht in den aktuellen Zweig pushen. Jetzt haben wir also einen "Live" -Zweig, der auf der Fernbedienung aktuell ist, und einen "Master" -Zweig, der es nicht ist
Schließlich füge eine Fernbedienung zu meinem lokalen Repo hinzu
git remote add web ssh://name@mydomain.com/path/from/root/to/webfolder
Jetzt checke ich jedes Mal, wenn ich die Website aktualisieren möchte, Material in meine lokale Hauptniederlassung ein und führe dieses Skript aus
#!/bin/sh
set -e
set -v
git push web master
ssh username@mydomain.com git merge --ff-only master
Das git push
pusht meine Änderungen in den nicht aktuellen Zweig auf dem Webserver. Der ssh
meldet sich dann beim Webserver an und leitet die Änderungen in "master" schnell an den aktuellen Zweig weiter. In diesem Fall der Zweig "live".
--ff-only
sagt zu scheitern, wenn sich Änderungen auf dem Server befinden.
Wenn es Änderungen auf dem Server gibt, kann ich sie mit in meinen lokalen Master ziehen
git pull web live
Auf mehr Sache. Bevor ich dies tue, richte ich SSH-Schlüssel auf dem Remote-Server ein, damit ich keine Passwörter eingeben muss
Dies hat absolut keine Verbindung zu Github oder Gitlab. Ich könnte meine Änderungen auch dort vornehmen, aber sie sind nicht miteinander verbunden.