Đó có phải là một thực tiễn tốt để có một chi nhánh từ xa cho mỗi nhà phát triển?


11

Được coi là một thực tiễn tốt để có một chi nhánh từ xa cho mỗi nhà phát triển cá nhân trong dự án?

Chúng tôi đang sử dụng Git với các nhánh sau:

  • bậc thầy
  • giải phóng
  • phát triển, xây dựng

Nếu mỗi nhà phát triển có chi nhánh riêng, họ có thể đẩy mã vào chi nhánh của mình và những người khác có thể hợp nhất những thay đổi này vào chi nhánh của họ.


1
Nhắc nhở tôi không gian làm việc của Accurev, ngoại trừ không bị ràng buộc với địa chỉ MAC của một máy cụ thể. Tôi thích nó.
Brandon

có thể trùng lặp với chi nhánh hoặc không chi nhánh?
gnat

1
Tại sao nat có một nhánh duy nhất cho mỗi tính năng mới được thêm vào?
Martin York

@Loki Vâng .. đó là một ý tưởng tốt ..
balanv

Câu trả lời:


4

Không! Đó là một thực tiễn tốt để có một không gian tên chi nhánh từ xa cho mỗi nhà phát triển.

Một nhánh duy nhất thường không đủ, vì vậy nhà phát triển cuối cùng sẽ tua lại rất nhiều hoặc nó sẽ không hữu ích nhiều. Bạn muốn nói rằng một nhà phát triển có thể đẩy bất cứ thứ gì họ muốn dưới tên của họ/ . Họ có thể sử dụng nó để xuất bản các phiên bản xem trước cho người khác, đưa ra phiên bản cho người khác kiểm tra hoặc thậm chí cho người khác tích hợp.

Bạn cũng có thể sử dụng điều này để cung cấp các nhánh cho nhà tích hợp hoặc bạn có thể sử dụng các tên dựa trên nhiệm vụ. Các tên dựa trên nhiệm vụ thường dễ theo dõi hơn cho nhà tích hợp, nhưng làm cho các nhà phát triển nghĩ nhiều hơn về việc đặt tên và mọi người không thích suy nghĩ. Tôi không biết cái nào sẽ hoạt động tốt hơn trong thực tế; thậm chí có thể phụ thuộc vào nhóm cụ thể.


2

Tôi có thể sẽ không cung cấp cho mỗi nhà phát triển một nhánh trên máy chủ trung tâm trừ khi bạn có một số loại cơ sở hạ tầng kiểu github cho phép họ tự tạo và phá hủy các nhánh và ghi lại rõ ràng những gì họ đang làm. Một số nhà phát triển sẽ cần nhiều hơn một chi nhánh và một số sẽ không cần bất kỳ chi nhánh nào, nhưng bạn đang tạo ra sự lộn xộn cho mọi người để sắp xếp và quản lý chi phí cho chính mình.

Tôi sẽ khuyến khích thay vì loại chia sẻ hữu cơ git vượt trội tại. Thật dễ dàng để tạo một bản sao trần trên chính máy của bạn và biến thư mục đó thành chia sẻ SMB chỉ đọc để người khác lấy từ đó. Trên thực tế, nó sẽ làm tôi rất ngạc nhiên nếu một số nhà phát triển của bạn chưa làm điều này.


1
Theo mặc định, mọi người luôn có thể tạo một nhánh. Github cho phép tạo toàn bộ kho lưu trữ, nhưng đó là quá mức cần thiết trong trường hợp này.
Jan Hudec

1

Nó phụ thuộc vào cách nhóm phát triển và nhiệm vụ của bạn được tổ chức. Theo tôi, mô hình bạn chỉ định sẽ hoạt động tốt nhất nếu:

  1. Mỗi nhà phát triển làm việc trên các nhiệm vụ độc lập của mình.
  2. Tất cả các nhà phát triển đang đóng góp cho cùng một nhiệm vụ.

Trường hợp điều này có thể không hoạt động tốt là nếu bạn có các dự án tính năng đồng thời đang phát triển và mỗi dự án có nhiều nhà phát triển làm việc với chúng.


1

Cung cấp cho mỗi nhà phát triển chi nhánh riêng của họ có thể hữu ích nếu tất cả họ đang làm việc trên những thứ khác nhau có thể chạm vào cùng một tệp. Nó có thể giúp ngăn chặn bước chân của nhau, nhưng nó sẽ yêu cầu mọi người phải hợp nhất thường xuyên và chịu trách nhiệm khi quản lý xung đột. Đây là những gì được thực hiện trong văn phòng của tôi và nó hoạt động khá tốt ngoài ngày hiếm hoi bạn phải tự hợp nhất một nửa các tệp bạn đã chỉnh sửa.

Nếu bạn có nhiều nhà phát triển làm việc trên cùng một tính năng, có lẽ tốt hơn là tạo các nhánh dựa trên tính năng đang phát triển thay vì nhà phát triển.


1

Nếu bạn đang làm việc với Git, bạn nên thử Yêu cầu kéo.

Tóm lại, trước tiên bạn hợp nhất nhánh chính vào nhánh làm việc hiện tại của bạn. Bất kỳ xung đột hợp nhất sẽ có trong chi nhánh địa phương của bạn. Điều này là tốt vì chi nhánh chủ của bạn không bao giờ bị phá vỡ. Nếu bạn thực sự thất vọng, bạn có cam kết địa phương mà bạn có thể hoàn nguyên.

Khi bạn hoàn thành việc hợp nhất, bạn yêu cầu một người khác trong nhóm xem xét và hợp nhất chi nhánh của bạn vào chi nhánh chính. Không bao giờ hợp nhất của riêng bạn! Miễn là không ai lẻn vào và thực hiện một Yêu cầu kéo khác, bạn được đảm bảo hợp nhất thành công. Vì mọi người đều biết về Yêu cầu kéo, nên bạn không nên có nhiều người hợp nhất thành chủ cùng một lúc.

Khi bạn đã quen với quy trình này, bạn nên cố gắng hợp nhất thường xuyên nhất có thể - loại tích hợp liên tục của một người nghèo. Càng ít thời gian giữa các xung đột càng tốt. Bạn sẽ xác định khi hai người đang nhân đôi nỗ lực và họ có thể hợp tác. Một số nơi sẽ hợp nhất mỗi khi họ hoàn thành một yêu cầu, có thể là cứ sau vài giờ. Tôi khuyên bạn nên hợp nhất ít nhất một lần một tuần; nếu không bạn cần phải phá vỡ nhiệm vụ của bạn tốt hơn.

Tôi thường tạo một nhánh cho mỗi nhiệm vụ. Git là tốt vì nó phân biệt giữa cam kết cục bộ và đẩy. Điều này cung cấp một số lợi ích của mỗi người có chi nhánh riêng mà không cần tất cả sự phức tạp.

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.