Я не дуже впевнений, про що ви питаєте. Ви кажете, що хочете розмістити хост на своєму власному сервері, але у вашому запитанні йдеться про те, що ви хочете розміщувати як сторінки gitlab, які не є вашим власним сервером.
У будь-якому випадку, можливо, це допоможе
Це я і роблю
на місцевому ПК
mkdir folderforwebsite
cd folderforwebsite
git init
echo "hello world" > index.html
git add index.html
git commit -m "initial commit"
Зараз у мене є місцеве репо на місцевому рівні. Скопіюйте його на сервер
scp -r ../folderforwebsite username@mydomain.com:/path/from/root/to/webfolder
Тепер я маю це на віддаленому сервері.
ssh name@mydomain.com 'cd path/to/webfolder; git checkout -b live`
Зараз на веб-сайті є і головний, і живий відділення. Я роблю це, оскільки AFAICT ви не можете натиснути на поточну гілку. Отже, зараз у нас є "жива" гілка, яка є поточною на віддаленій, і "головна" гілка, яка ні
Нарешті додайте пульт до мого місцевого репо
git remote add web ssh://name@mydomain.com/path/from/root/to/webfolder
Тепер, коли я хочу оновити веб-сайт, я перевіряю речі у своїй місцевій головній гілці, а потім запускаю цей сценарій
#!/bin/sh
set -e
set -v
git push web master
ssh username@mydomain.com git merge --ff-only master
git push
Штовхає мої зміни в непоточний гілки на веб - сервері. В ssh
той реєструється на веб - сервер і швидко пересилає зміни в «майстер» до поточної гілки. У цьому випадку "жива" гілка.
--ff-only
говорить про помилку, якщо на сервері є зміни.
Якщо є зміни на сервері, я можу занести їх до свого місцевого майстра
git pull web live
З іншого боку. Перш ніж робити щось із цього, я встановлюю SSH-ключі на віддалений сервер, тому мені не потрібно вводити паролі
Це абсолютно не має зв'язку з github або gitlab. Я можу також натиснути свої зміни там, але вони не пов'язані.