Je ne sais pas vraiment ce que vous demandez. Vous dites que vous voulez héberger sur votre propre serveur mais votre question dit que vous voulez héberger comme des pages gitlab qui ne sont pas votre propre serveur.
Dans tous les cas, cela vous aidera peut-être
C'est ce que je fais
sur le PC local
mkdir folderforwebsite
cd folderforwebsite
git init
echo "hello world" > index.html
git add index.html
git commit -m "initial commit"
J'ai maintenant un dépôt local. Copiez-le sur le serveur
scp -r ../folderforwebsite username@mydomain.com:/path/from/root/to/webfolder
Maintenant, je l'ai sur le serveur distant.
ssh name@mydomain.com 'cd path/to/webfolder; git checkout -b live`
Maintenant, il y a à la fois une branche principale et une branche en direct sur le site Web. Je fais cela depuis AFAICT, vous ne pouvez pas pousser vers la branche actuelle. Nous avons donc maintenant une branche "live" qui est actuelle sur la télécommande et une branche "master" qui n'est pas
Enfin, ajoutez une télécommande à mon dépôt local
git remote add web ssh://name@mydomain.com/path/from/root/to/webfolder
Maintenant, chaque fois que je veux mettre à jour le site Web, j'archive des trucs dans ma branche principale locale, puis exécute ce script
#!/bin/sh
set -e
set -v
git push web master
ssh username@mydomain.com git merge --ff-only master
Le git push
pousse mes modifications à la branche non actuelle sur le serveur Web. Le ssh
se connecte ensuite au serveur Web et transfère rapidement les modifications de "master" à la branche actuelle. Dans ce cas, la branche "live".
--ff-only
dit d'échouer s'il y a des changements sur le serveur.
S'il y a des changements sur le serveur, je peux les insérer dans mon maître local avec
git pull web live
Sur plus de chose. Avant de faire quoi que ce soit, je configure les clés SSH sur le serveur distant pour ne pas avoir à taper de mot de passe
Cela n'a absolument aucun lien avec github ou gitlab. Je pourrais aussi y pousser mes modifications, mais elles ne sont pas connectées.