quy trình làm việc nhóm github - để ngã ba hay không?


21

Chúng tôi là một nhóm nhỏ các nhà phát triển web hiện đang sử dụng lật đổ nhưng chúng tôi sẽ sớm chuyển sang github.

Tôi đang xem xét các loại quy trình công việc github khác nhau và chúng tôi không chắc liệu toàn bộ khái niệm forking trong github cho mỗi nhà phát triển có phải là một ý tưởng tốt cho chúng tôi hay không.

Nếu chúng tôi sử dụng dĩa, tôi hiểu mỗi nhà phát triển sẽ có kho lưu trữ từ xa & cục bộ riêng. Tôi lo lắng nó sẽ làm cho việc thay đổi khó khăn và quá phức tạp. Ngoài ra, mối quan tâm lớn nhất của tôi là nó sẽ buộc mỗi nhà phát triển phải có 2 điều khiển từ xa: origin (là ngã ba từ xa) và ngược dòng (được sử dụng để "đồng bộ hóa" các thay đổi từ kho lưu trữ chính). Không chắc chắn nếu đó là một cách dễ dàng để làm việc.

Điều này tương tự với quy trình làm việc được giải thích ở đây: https://github.com/usm-data-analysis/usm-data-analysis.github.com/wiki/Git-workflow

Nếu chúng ta không sử dụng dĩa, có lẽ chúng ta có thể ổn bằng cách sử dụng repo trung tâm tạo một nhánh cho mỗi tác vụ chúng ta đang làm và hợp nhất chúng vào nhánh phát triển trên cùng một kho lưu trữ. Điều đó có nghĩa là chúng tôi sẽ không thể hạn chế việc hợp nhất các chi nhánh và có thể hơi lộn xộn khi có nhiều chi nhánh trên kho lưu trữ trung tâm.

Bất kỳ đề xuất từ ​​các nhóm đã cố gắng cả hai quy trình công việc?


3
ngã ba hoặc không rẽ nhánh
Lukasz Madon

Câu trả lời:


9

Tôi nghĩ rằng nỗi sợ bị giả mạo của bạn xuất phát từ sự hợp nhất của SVN - bởi vì đó không phải là sự giả mạo gây ra rắc rối - đó là sự hợp nhất.

Lặn trong - bạn sẽ thấy nó thực sự tuyệt vời! Bạn không cần quá nhiều ngã ba (không rẽ nhánh cho mọi thay đổi trong mỗi tệp), nhưng bạn có thể rẽ nhánh cho các tính năng và hợp nhất lại.

Hãy nghĩ về GitHub như một số phiên bản đáng để cải thiện trên nhiều khái niệm cốt lõi trong kiểm soát nguồn.

Khái niệm về một nhánh "ổn định" và một ngã ba "phát triển tích cực" cũng đề cập đến nhiều vấn đề này nếu bạn do dự không muốn đi. : P


19
Nếu bạn thay thế tất cả các trường hợp "ngã ba" bằng "nhánh", tôi đồng ý. Tuy nhiên, câu hỏi là về việc giả mạo và xử lý hai (hoặc nhiều) kho lưu trữ từ xa.
David Harkness

8

Chúng tôi đã thử cả hai, với các nhà phát triển đang ở nhà trong svn. Và nếu bạn là một nhóm các nhà phát triển đã làm việc cùng nhau và tin tưởng lẫn nhau với các quyền cam kết, có lẽ bạn sẽ dễ dàng hơn khi chỉ giữ một repo trung tâm duy nhất tại git và thêm tất cả các bạn làm cộng tác viên mà repo đó.

Thỉnh thoảng chúng tôi vẫn làm dĩa riêng, nhưng đó thường là những thay đổi kỳ lạ hoặc thử nghiệm 1 người mà những người còn lại thường không quan tâm, nhưng dù sao chúng tôi cũng muốn lưu trữ từ xa.

Tôi sẽ bắt đầu với một repo duy nhất, trung tâm và chỉ làm việc với git một lúc. Có thể ngã ba riêng sẽ phát triển trên bạn, có thể không. Hoặc là tốt.


6

Trong git, một ngã ba thực sự chỉ là một nhánh khác. Với quy trình làm việc của từng nhà phát triển, bạn bắt buộc một cách hiệu quả rằng mỗi nhà phát triển có một nhánh công cộng (từ xa) để theo dõi các thay đổi phát triển của họ. Điều này hữu ích để có thể cộng tác trực tiếp (ngang hàng) giữa các nhà phát triển. Bạn sẽ phải hợp nhất các thay đổi của mỗi nhà phát triển vào repo trung tâm trong mọi trường hợp, vì vậy tôi không nghĩ rằng có nhiều chi phí được thêm vào bởi điều này.


3

Đối với một nhóm nhỏ gồm 2-3 nhà phát triển, bạn có thể sử dụng phân nhánh trên repo để quản lý các bản sửa lỗi và tính năng. Vấn đề là khi bạn có nhiều nhà phát triển hơn thế và nhiều tính năng và bản sửa lỗi đang được phát triển.

Khi đó là trường hợp, repo chính của bạn trong Github sẽ có hàng trăm chi nhánh; một số sẽ cũ và bị lãng quên và không được trộn lẫn.

Bạn cũng sẽ gặp vấn đề với sự hợp tác khi ai đó đang ép buộc vào một chi nhánh được chia sẻ trên repo. Điều đó có nghĩa là không ai có thể hợp tác chính xác trên nhánh đó vì lực đẩy là một bản viết lại của lịch sử.

Ngã ba một repo làm cho nó dễ dàng hơn để theo dõi các chi nhánh đang làm việc trong tiến trình và những chi nhánh tốt để đi. Nó giữ repo chính sạch hơn.

Tuy nhiên, cơ sở hạ tầng thử nghiệm của bạn có thể dựa vào việc sử dụng repo chính để có thể khó kiểm tra các thay đổi trong repo rẽ nhánh của bạn trừ khi bạn đẩy chi nhánh lên thượng nguồn. Có thể khó để tìm ra khi nào phân nhánh và rẽ nhánh là tốt nhất nhưng nói chung, khi nhóm có hơn 4 người và có rất nhiều bản sửa lỗi và tính năng, thì forking là lựa chọn tốt nhất.

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.