Tôi có thể lưu trữ trang web của mình thông qua gitlab như bạn có thể với các trang github không?


20

Tôi rất thích sử dụng git để lưu trữ trang web của mình và rất thích một nền tảng tôi có thể đăng nhập trực tuyến để đi cùng với nó (một cái gì đó giống như Github). Bạn sẽ nghĩ trong trường hợp nào, các trang Github sẽ là tuyến đường hoàn hảo cho tôi, mặc dù tôi không muốn sử dụng các trang Github. Tôi muốn lưu trữ tất cả điều này trên các máy chủ của riêng tôi giống như bạn làm với doanh nghiệp Github (nhưng miễn phí).

Tôi đã tìm thấy Gitlab và tự hỏi liệu có cách nào tôi có thể sử dụng Gitlab như các trang Github không. Có thể không?


Bởi gitlab giống như bạn có nghĩa là đánh dấu và khả năng cập nhật trang web của GitLab bằng cách chỉ cần đẩy lên một repo git?
phoops

Tôi có nghĩa là có trang web của tôi tự động cập nhật khi tôi thực hiện thay đổi trong một repo gitlab, vì vậy có.
Ben Watkins

1
Trang GitHub chỉ sử dụng Jekyll . Vì vậy, hãy cài đặt + một máy chủ web phục vụ các trang tĩnh và có thể đưa vào một vài móc git để triển khai tự động nội dung được đẩy và về cơ bản bạn đã hoàn tất.
Ajedi32

Hey @ Ajedi32 vấn đề với cách tiếp cận này là với mỗi dự án mới, bạn có git repo và thiết lập máy chủ web. Với các trang GitHub, nó chỉ là một nhánh khác mà bạn đẩy.
fiorix

@fiorix Vâng, nếu bạn muốn tự động hóa mọi thứ ở mức độ đó, có lẽ bạn sẽ cần một giải pháp phức tạp hơn một chút. Mặc dù vậy vẫn có thể thực hiện được, bạn chỉ cần nối vào hệ thống tạo dự án GitLab bằng cách nào đó (mặc dù tôi không biết chính xác như thế nào, tôi đoán là cách đơn giản nhất có thể liên quan đến việc xem hệ thống tệp hoặc có thể một số cuộc gọi đến API GitLab).
Ajedi32

Câu trả lời:


18

Tin tốt!

Kể từ ngày 8.3 (tháng 12 năm 2015) GitLab có "Trang GitLab". https://about.gitlab.com/2015/12/22/gitlab-8-3- phát hành /

Tính năng này có sẵn trên GitLab.com (chạy EE) nơi bạn có thể có kho lưu trữ miễn phí, không giới hạn, công khai / riêng tư.

Dưới đây là tài liệu cho Trang GitLab, giải thích cách bạn có thể lưu trữ miễn phí các trang web tĩnh của mình trên GitLab. http://doc.gitlab.com/ee/pages/README.html


5

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.



2

Với một chút tìm kiếm các câu hỏi khác nhau trên Google, tôi đã tìm ra một cách. Nó có thể không phải là cách tốt nhất và nó có thể quá phức tạp, nhưng nó nên hoạt động và đó là điều chính. Mặc dù, nếu bạn biết một cách tốt hơn hoặc có thể tìm thấy một, xin vui lòng cho tôi biết!

Tôi thấy rằng bạn có thể triển khai mã của mình đến máy chủ của mình thông qua Git hook. Tất cả những gì bạn cần làm là SSH vào máy chủ của bạn, tạo một repo git và sau đó thiết lập một hook để bạn đẩy các cam kết vào repo này. Điều này sẽ cho phép bạn đẩy các cam kết của mình đến máy chủ của mình, nhưng không liên quan gì đến gitlab vào thời điểm này.

Bước tiếp theo là thêm url đẩy cho gitlab vào cùng một điều khiển từ xa. Bằng cách này, bạn sẽ được đẩy đến cả gitlab và chính trang web mỗi lần. Do đó, cả repo gitlab và trang web thực tế đều sẽ đồng bộ. Mặc dù đây là một hack và chắc chắn là không hiệu quả.

Tôi đã tìm thấy cách triển khai mã của bạn đến máy chủ của bạn thông qua git từ bài đăng trên blog này: http://sebduggan.com/blog/deploy-your-website-changes-USE-git/

Tôi thấy rằng bạn có thể thêm hai url đẩy vào điều khiển từ xa trong git từ câu hỏi này trên stackoverflow: /programming/14290113/git-pushing-code-to-two-remotes

Như tôi đã nói, nếu bạn có thể tìm thấy một cách tốt hơn, xin vui lòng cho tôi biết. Điều này sẽ hoạt động, nhưng nó có nghĩa là có hai phiên bản của cùng một mã. Tất nhiên, điều này rất lộn xộn và gây lãng phí lớn cho bộ nhớ của máy chủ của bạn.


1

Hiện tại, điều tốt nhất bạn có thể làm là GitLab CI để chuyển sang một máy chủ tĩnh như Amazon S3.

Nếu bạn có thể triển khai với Git, câu hỏi (chưa giải quyết) sau đây là cụ thể về cách thực hiện với gitlab: /programming/14288288/gitlab-reposeective-mirroring

Có một yêu cầu cụ thể cho điều đó tại trình theo dõi tính năng: http://feedback.gitlab.com/forums/176466-general/suggestions/5599145-preview-render-static-html-pages-pushed-to-repose

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.