मुझे यकीन नहीं है कि आप क्या पूछ रहे हैं। आप कहते हैं कि आप अपने स्वयं के सर्वर पर होस्ट करना चाहते हैं, लेकिन आपका प्रश्न कहता है कि आप गिटलैब पृष्ठों की तरह होस्ट करना चाहते हैं जो आपका स्वयं का सर्वर नहीं है।
किसी भी मामले में शायद यह मदद करेगा
मैं यह करता हूं
स्थानीय पीसी पर
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 कुंजी को दूरस्थ सर्वर पर सेट करता हूं, ताकि मुझे कोई पासवर्ड टाइप न करना पड़े
इसका जीथूब या गिटलैब से कोई संबंध नहीं है। मैं अपने परिवर्तनों को वहाँ भी धकेल सकता हूँ लेकिन वे जुड़े नहीं हैं।