Nie jestem do końca pewien, o co pytasz. Mówisz, że chcesz hostować na własnym serwerze, ale twoje pytanie mówi, że chcesz hostować jak strony gitlab, które nie są twoim własnym serwerem.
W każdym razie może to pomoże
Tym się właśnie zajmuję
na lokalnym komputerze
mkdir folderforwebsite
cd folderforwebsite
git init
echo "hello world" > index.html
git add index.html
git commit -m "initial commit"
Teraz mam lokalnie repo. Skopiuj go na serwer
scp -r ../folderforwebsite username@mydomain.com:/path/from/root/to/webfolder
Teraz mam go na zdalnym serwerze.
ssh name@mydomain.com 'cd path/to/webfolder; git checkout -b live`
Teraz na stronie jest zarówno oddział główny, jak i oddział na żywo. Robię to, ponieważ AFAICT nie możesz wypychać do bieżącego oddziału. Mamy teraz gałąź „na żywo”, która jest obecna na pilocie, i gałąź „master”, która nie jest
Na koniec dodaj pilot do mojego lokalnego repozytorium
git remote add web ssh://name@mydomain.com/path/from/root/to/webfolder
Teraz za każdym razem, gdy chcę zaktualizować witrynę, sprawdzam rzeczy w lokalnym oddziale głównym, a następnie uruchamiam ten skrypt
#!/bin/sh
set -e
set -v
git push web master
ssh username@mydomain.com git merge --ff-only master
git push
Pcha moje zmiany w długoterminowych oddziału na serwerze internetowym. Te ssh
następnie loguje się do serwera WWW i fast-forward zmian „master” do obecnego oddziału. W tym przypadku oddział „na żywo”.
--ff-only
mówi o niepowodzeniu, jeśli na serwerze pojawią się zmiany.
Jeśli są zmiany na serwerze, mogę je przeciągnąć do mojego lokalnego wzorca
git pull web live
Na więcej rzeczy. Zanim to zrobię, konfiguruję klucze SSH na zdalnym serwerze, więc nie muszę wpisywać żadnych haseł
Nie ma to absolutnie żadnego związku z githubem lub gitlabem. Mogę też wprowadzić tam moje zmiany, ale nie są one powiązane.