Tôi không thực sự chắc chắn những gì bạn đang hỏi. Bạn nói rằng bạn muốn lưu trữ trên máy chủ của riêng bạn nhưng câu hỏi của bạn nói rằng bạn muốn lưu trữ như các trang gitlab không phải là máy chủ của riêng bạn.
Trong mọi trường hợp có lẽ điều này sẽ giúp
Đây là những gì tôi làm
trên máy tính cục bộ
mkdir folderforwebsite
cd folderforwebsite
git init
echo "hello world" > index.html
git add index.html
git commit -m "initial commit"
Bây giờ tôi có một repo địa phương. Sao chép nó vào máy chủ
scp -r ../folderforwebsite username@mydomain.com:/path/from/root/to/webfolder
Bây giờ tôi có nó trên máy chủ từ xa.
ssh name@mydomain.com 'cd path/to/webfolder; git checkout -b live`
Bây giờ có cả chủ và chi nhánh trực tiếp trên trang web. Tôi làm điều này vì AFAICT bạn không thể đẩy sang chi nhánh hiện tại. Vì vậy, bây giờ chúng ta có một nhánh "sống" hiện tại trên điều khiển từ xa và một nhánh "chính" không phải là
Cuối cùng thêm một điều khiển từ xa vào repo địa phương của tôi
git remote add web ssh://name@mydomain.com/path/from/root/to/webfolder
Bây giờ, bất cứ khi nào tôi muốn cập nhật trang web, tôi kiểm tra công cụ vào chi nhánh chính địa phương của mình và sau đó chạy tập lệnh này
#!/bin/sh
set -e
set -v
git push web master
ssh username@mydomain.com git merge --ff-only master
Việc git push
đẩy các thay đổi của tôi đến nhánh không hiện tại trên máy chủ web. Sau ssh
đó đăng nhập vào máy chủ web và chuyển nhanh các thay đổi trong "chính" sang nhánh hiện tại. Trong trường hợp này là chi nhánh "sống".
--ff-only
nói sẽ thất bại nếu có thay đổi trên máy chủ.
Nếu có thay đổi trên máy chủ, tôi có thể kéo chúng vào máy chủ cục bộ của mình bằng
git pull web live
Về nhiều thứ. Trước khi thực hiện bất kỳ thao tác nào, tôi thiết lập các khóa SSH trên máy chủ từ xa để không phải nhập bất kỳ mật khẩu nào
Điều này hoàn toàn không có kết nối với github hoặc gitlab. Tôi cũng có thể thúc đẩy những thay đổi của mình ở đó nhưng chúng không được kết nối.