2010-03-13 31 views
5

Tôi có một kho lưu trữ git trung tâm mà mọi người đẩy vào để thử nghiệm và tích hợp, nhưng nó chỉ được đẩy đến khi các tính năng được 'sẵn sàng'. Trong khi ở giữa một nhiệm vụ lớn, các nhà phát triển thường xuyên có nhiều cam kết ở lại trên ổ đĩa cứng của họ.Làm cách nào để bạn chia sẻ kho lưu trữ git của mình với các nhà phát triển khác?

Đôi khi ở giữa các dự án này, tôi muốn xem nhà phát triển khác đang làm gì hoặc chỉ cho anh ấy cách tôi đã làm điều gì đó. Tôi muốn có thể nói với một nhà phát triển khác chỉ cần "kéo bản sao làm việc của tôi". Cách duy nhất tôi có thể nghĩ là có mọi người chạy SSH trên máy phát triển của họ và thêm tài khoản hoặc khóa SSH cho mọi người, nhưng đây là một sự riêng tư lớn và sự cho phép cơn ác mộng, và có vẻ như rất nhiều công việc để duy trì.

Chúng ta có nên chuyển sang kho trung tâm đó trong những trường hợp này không? Chúng ta có nên thúc đẩy sau mỗi cam kết địa phương không?

+0

bạn đang sử dụng Linux hoặc cửa sổ? – hasen

+0

hầu hết các nhà phát triển hiện tại đang sử dụng OS X, vì vậy ssh không nằm trong câu hỏi hoàn toàn. – semi

Trả lời

3

Hai cách tiếp cận chung:

  • nhà phát triển có Repos công riêng của họ (ví dụ mpd và các chương trình liên quan).
  • nhà phát triển đẩy để refs trong không gian tên riêng của họ trên một repo trung tâm (dev1/master, dev2/master). Tùy thuộc vào tình hình chính xác của bạn, bạn có thể muốn một số kiểm soát truy cập ở dạng móc để đảm bảo không ai làm bất cứ điều gì ngớ ngẩn.
3

Chúng tôi sử dụng các chi nhánh cho mã chưa "sẵn sàng" và các nhánh được đẩy tới kho trung tâm (được sao lưu!). Khi một tính năng mới trở thành "sẵn sàng", nó sẽ được hợp nhất vào chi nhánh master.

Một trong những lợi ích của việc sử dụng git là rất, rất dễ dàng để tạo và hợp nhất các chi nhánh, cộng với bạn có thể hình dung những gì đang xảy ra bằng cách sử dụng gitk. Được đề xuất!

+0

Tôi quên nơi tôi đã học được điều này - nếu bạn có nhiều nhà phát triển có mỗi nhà phát triển làm việc trên một hoặc nhiều chi nhánh được đặt trước bằng tên viết tắt của họ, ví dụ: nr/đề xuất, nr/line-end-fix và chỉ sử dụng nhánh chính để tích hợp. Các chi nhánh sau đó có thể được đẩy xung quanh các kho lưu trữ và nguồn gốc vẫn còn rõ ràng, và không có xung đột tên chi nhánh. –

+0

Điều này phù hợp với triết lý git của các nhánh tính năng ... nó chỉ là các nhánh tính năng từ xa. Một dự án của tôi sử dụng phương pháp này và dường như nó đang hoạt động tốt. – RyanWilcox

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