2011-08-15 35 views
9

Tôi sử dụng kho lưu trữ git tại nơi làm việc trên GitHub. Tôi biết các lệnh cơ bản để điều hướng và chỉnh sửa một kho lưu trữ nhưng tôi không biết làm thế nào để thiết lập một từ đầu.Làm cách nào để thiết lập kho lưu trữ git riêng tư trong Ubuntu?

Tôi muốn thiết lập máy chủ riêng cho git repo để bạn bè của tôi có thể trợ giúp tôi với trò chơi tôi đang phát triển cho Android. Nhưng tôi không biết làm thế nào!

Gitosis có phải là lựa chọn tốt nhất cho điều này không?

+1

Sử dụng GitHub không phải là một tùy chọn? –

+2

@Esko, GitHub không phải là một lựa chọn bởi vì để làm cho repo riêng nó đòi hỏi $$$ và tôi đang tìm kiếm một lựa chọn miễn phí. – KRB

+0

https://bitbucket.org cung cấp các kho git và mercurial riêng miễn phí. –

Trả lời

9

Trước tiên, bạn cần tạo repo (dễ dàng như git init)
Thứ hai, Bạn cần cấp cho bạn bè quyền truy cập vào kho lưu trữ.

Bạn có thể sử dụng vài lựa chọn mà git xử lý:

  • qua file:// (truy cập trực tiếp vào mạng LAN)
  • qua ftp
  • thông qua giao thức git (truy cập ssh)

Thứ ba, quản lý quyền truy cập, quyền, v.v.

Đối với điều này, tùy chọn tốt nhất là gitolite, tốt hơn gitosis. Có một hướng dẫn cài đặt tốt trong repo. Phần khó khăn nhất là thiết lập truy cập không mật khẩu vào máy chủ (nhưng điều này không thực sự liên quan đến git). Sử dụng Ubuntu và Github bạn có thể biết những gì là các khóa ssh công khai.

Gitolite là lựa chọn tốt nhất cho đến nay, nhưng phức tạp một chút. Tuy nhiên, nếu bạn không muốn sử dụng gitolite, bạn vẫn có thể chỉ để khởi động repo, và làm cho máy có thể truy cập, đó là giải pháp đơn giản nhất.

Xem thêm Setting Up the Server từ sách miễn phí Pro Git. Có các chương về số gitolitegitosis.

10

IMO cách đơn giản nhất là sử dụng ssh. Nếu bạn có một máy tính mà bạn và bạn bè của bạn có thể ssh, thì bạn chỉ cần tạo một bản sao của kho lưu trữ của bạn, đặt nó lên máy chủ ssh và sao chép nó từ đó. Tôi làm điều này bằng cách sử dụng tài khoản dreamhost của tôi như là máy chủ.

cd my-repo 
cd .. 
# Make a bare copy of the repo 
git clone --bare my-repo my-repo.git 
# Upload the bare copy to the server 
# -- in this case, I've already created a /repos folder to hold the bare repos 
rsync my-repo.git/ mysshserver:/repos/my-repo.git/ 
# Add the new server repo as a remote to your local repository 
cd my-repo 
git remote add origin mysshserver:/repos/my-repo.git 

Sau đó cho bạn bè của bạn:

git clone mysshserver:/repos/my-repo.git/ 

Bí quyết duy nhất là đảm bảo tất cả tài khoản người dùng mà bạn đang sử dụng có quyền ghi vào thư mục repo (/repos/my-repo.git/* trên máy chủ).

+0

Lời khuyên tuyệt vời, cảm ơn. Bạn có thực sự có nghĩa là "git remote add master" không? Hoặc nên có được "git remote add origin"? (Tôi mới đến git, vì vậy có thể bị nhầm lẫn.) – Nelson

+1

Vâng, bạn nói đúng, có lẽ nên xuất xứ. Cố định trong câu trả lời. – avh

Các vấn đề liên quan