Trang chủ Thủ Thuật Cách thiết lập máy chủ Git riêng

Cách thiết lập máy chủ Git riêng

0
35

Cách thiết lập máy chủ Git riêng

Git logo

Nếu bạn muốn thiết lập kiểm soát nguồn cho một dự án, nhưng không muốn lưu trữ nó trên một dịch vụ như GitHub, bạn có thể chạy máy chủ của git riêng mình trên VPS để lưu trữ mã của mình và hoạt động như một kho lưu trữ chính cho bất kỳ cộng tác viên nào.

Tại sao nên chạy máy chủ của riêng bạn?

Với số lượng nhà cung cấp git được lưu trữ miễn phí, chẳng hạn như GitHub, GitLab và Bitbucket, việc tự làm điều đó không có ý nghĩa gì nhiều. Nhưng, có một vài tình huống mà nó là một giải pháp khả thi.

Trước hết, chạy máy chủ của riêng bạn riêng tư hơn nhiều, đặc biệt nếu bạn đang làm việc trên mã, bạn không muốn lưu trữ trên “đám mây” của người khác. Điều này không có nghĩa là các nhà cung cấp như GitLab không an toàn, nhưng tự lưu trữ mọi thứ có thể giúp một số người yên tâm hơn.

Ngoài ra, nếu bạn đang sử dụng dịch vụ của bên thứ ba, có những hạn chế về kích thước tệp có thể không lý tưởng. GitHub không cho phép các tệp trên 100 MB, đây có thể là một vấn đề lớn đối với các dự án có tệp nhị phân lớn. Sử dụng máy chủ của riêng bạn sẽ loại bỏ giới hạn này, giả sử bạn có thể trả tiền cho nhiều dung lượng ổ cứng hơn.

Dù trường hợp sử dụng của bạn là gì, bạn có thể làm tốt hơn barebones git . Phiên bản cộng đồng của GitLab là miễn phí và mã nguồn mở, và dễ dàng thiết lập trên máy chủ của riêng bạn. Điều này mang lại cho bạn tất cả những lợi ích của việc tự lưu trữ nó cùng với giao diện web rất đẹp và nhiều công cụ CI / CD. Chúng tôi khuyên bạn nên sử dụng GitLab nếu bạn có dung lượng máy chủ dự phòng. (Nó yêu cầu khoảng 3 GB RAM.) Bạn có thể đọc hướng dẫn cài đặt và định cấu hình của chúng tôi để tìm hiểu thêm.

Quảng cáo

Nhưng, nếu bạn không muốn tất cả các chuông và còi, và chỉ muốn chạy một điều khiển từ xa đơn git giản, bạn có thể tiếp tục đọc.

Git Remotes chỉ là kho lưu trữ của người khác

Điều đầu tiên cần lưu ý git là lưu trữ máy chủ không thực sự phức tạp lắm. Git sử dụng mô hình điều khiển nguồn phân tán; bản sao cục bộ của bạn của một kho lưu trữ hoàn toàn không kết nối với tất cả các đồng nghiệp của bạn, nhưng nó kết nối với một “điều khiển từ xa”, thường là trên một máy chủ hoặc dịch vụ trung tâm bên ngoài. Khi bạn đẩy và kéo, bạn thực hiện sửa đổi bản sao chính thức của điều khiển từ xa. Khi đồng nghiệp của bạn lấy từ xa, họ sẽ tải xuống cam kết của bạn.

Về mặt kỹ thuật, bạn có thể git chạy như một dịch vụ hoàn toàn phi tập trung. Nếu bạn có hai người, mỗi người sẽ kéo các bản cập nhật từ nhau. (Đẩy đến kho không phải máy chủ không được khuyến cáo trong thiết lập này.) Điều này không thực sự có thể sử dụng được trong thực tế, trừ khi cả hai bên đều có địa chỉ IP tĩnh và luôn trực tuyến, vì vậy hầu hết mọi người đều chọn mô hình máy chủ-máy khách.

Vì vậy, tất cả những git gì một máy chủ sau đó chỉ là một kho lưu trữ thông thường được cấu hình như bản sao chính và mở ra internet. Nó đơn giản đáng ngạc nhiên để thiết lập. Trước tiên, chúng ta sẽ cần tạo một người dùng mới. Git sử dụng SSH để xác thực và tất cả lưu lượng truy cập giữa máy chủ và máy khách, vì vậy chúng tôi sẽ cần một người dùng dịch vụ để quản lý kho.

sudo sử dụngradd git

Tiếp theo, chuyển sang người git dùng trong phần còn lại của thiết lập:

nước đi

Bạn sẽ cần thêm khóa SSH vào tệp git của người authorized_keys dùng:

nano ~/.ssh/authorized_keys
Quảng cáo

Đây là một lĩnh vực mà các dịch vụ như GitHub và GitLab có dòng lệnh Git beat. Quản lý truy cập không dễ dàng được xử lý theo cách này, vì bạn sẽ cần cấp cho mọi người quyền truy cập vào cùng một người dùng dịch vụ, điều này không lý tưởng hoặc bạn sẽ cần thiết lập người dùng riêng cho từng người, điều này cũng không lý tưởng. Dù bằng cách nào, cam kết sẽ hiển thị với bất kỳ tên người dùng và email nào mà người dùng cuối đã định cấu hình trong cài đặt git của họ.

Dù sao, để tạo kho lưu trữ thực tế, chỉ cần git init chạy trong thư mục chính của người git dùng:

git init --trần kho lưu trữ.git

Tùy --bare chọn là cần thiết ở đây. Thông thường, khi bạn đang nhân bản một kho lưu trữ, lưu trữ tất cả các tệp mà nó sử dụng để quản lý các phiên bản trong thư mục ẩn và nó giữ một phiên bản có thể sử dụng được ở bất cứ nơi nào git HEAD hiện đang được kiểm tra của .git bạn. Điều này thường làm cho thư mục repo của bạn lớn gấp đôi so với nó sẽ không có , mặc dù nó git có thể lớn hơn nếu bạn có các tệp nhị phân lớn và rất nhiều thay đổi theo thời gian.

Một kho lưu trữ trần chỉ đơn giản là một kho mà không có các phiên bản có thể sử dụng của các tệp hiện đang được kiểm tra. Thay vào đó, thư mục kho lưu trữ chỉ là nội dung của những gì sẽ là thư .git mục. Điều này tiết kiệm không gian lưu trữ và cấu hình kho lưu trữ như một máy chủ chính. Bởi vì không có nội dung địa phương, sẽ không có xung đột với trưởng chi nhánh. Đó là quy ước để đặt tên kho trần với phần mở .git rộng tệp, nhưng nó không được yêu cầu rõ ràng.

Đó là tất cả những gì được yêu cầu ở phía máy chủ. Từ máy cục bộ của bạn, bạn sẽ cần sao chép kho hoặc thêm điều khiển từ xa mới:

git từ xa thêm nguồn gốc git@example.com:repository.git

URL bắt đầu bằng git@ vì nó kết nối qua SSH với tư cách là người git dùng. Cuối :repository.git cùng thực sự là một tên đường dẫn, không chỉ là một mã định danh. Đường dẫn có liên quan đến git thư mục chính của người dùng, vì vậy nếu bạn đặt repo ở nơi khác, bạn sẽ muốn di chuyển nó đến đây hoặc sử dụng tên đường dẫn đầy đủ.

Quảng cáo

Sau khi bạn đã kết nối repo cục bộ của mình, bạn sẽ có toàn quyền truy cập để đẩy và kéo như bình thường. Hãy nhớ rằng mặc dù mặc định đó git không có hệ thống quyền được xây dựng, vì vậy không có gì ngăn cản bất kỳ ai có quyền truy cập vào người dùng có toàn quyền kiểm soát kho lưu trữ chính của git bạn.

What Is Microsoft’s Blazor Web Framework, and Should You Use It?

Khung web Blazor của Microsoft là gì và bạn có nên sử dụng nó không?

What Does It Mean to “Shift Security Left?”

“Shift Security Left có nghĩa là gì?”

How to Run Puppeteer and Headless Chrome in a Docker Container

Cách chạy Puppeteer và Chrome không đầu trong Docker Container

How To Reset Your Forgotten Linux Password in WSL

Cách đặt lại mật khẩu Linux bị quên của bạn trong WSL

What Is SQLite and Why Is It So Popular?

SQLite là gì và tại sao nó lại phổ biến như vậy?

How to Fix, Edit, or Undo Git Commits (Changing Git History)

Cách khắc phục, chỉnh sửa hoặc hoàn tác cam kết Git (Thay đổi lịch sử Git)

Dịch từ: https://www.cloudsavvyit.com/2510/how-to-set-up-a-private-git-server/

BÌNH LUẬN

Vui lòng nhập bình luận của bạn
Vui lòng nhập tên của bạn ở đây