Я не совсем уверен, что вы спрашиваете. Вы говорите, что хотите разместить на своем собственном сервере, но ваш вопрос говорит, что вы хотите разместить как страницы 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
Теперь, в любое время, когда я хочу обновить веб-сайт, я проверяю материал в своей локальной ветке master и затем запускаю этот скрипт.
#!/bin/sh
set -e
set -v
git push web master
ssh username@mydomain.com git merge --ff-only master
The git push
толкает мои изменения в ветке, не являющейся текущей на веб-сервере. В ssh
то регистрируется на веб - сервер и быстро пересылает изменения в «мастер» к текущей ветви. В данном случае «живая» ветка.
--ff-only
говорит сбой, если есть изменения на сервере.
Если на сервере есть изменения, я могу вытащить их в свой локальный мастер с
git pull web live
На больше вещь. Прежде чем сделать что-либо из этого, я устанавливаю ключи SSH на удаленном сервере, поэтому мне не нужно вводить пароли
Это не имеет абсолютно никакого отношения к github или gitlab. Я мог бы также внести туда свои изменения, но они не связаны.