Đầu tiên, tôi muốn chỉ ra rằng trong git, mọi thứ pull
hoàn toàn theo nghĩa đen là một hoạt động phân nhánh và mỗi thứ push
là một sự hợp nhất. Máy master
trên của nhà phát triển là một nhánh hoàn toàn tách biệt với master
repo trung tâm mà bạn chia sẻ, với vị thế tương đương từ góc độ kỹ thuật. Thỉnh thoảng tôi sẽ đổi tên phiên bản địa phương của mình thành upstream
hoặc một cái gì đó nếu nó phù hợp với mục đích của tôi hơn.
Tôi chỉ ra điều này bởi vì nhiều tổ chức nghĩ rằng họ đang sử dụng các chi nhánh hiệu quả hơn so với đồng nghiệp của bạn, khi thực sự họ đang làm ít hơn là tạo một tên bổ sung cho một chi nhánh trên đường đi, dù sao đó sẽ không được lưu trong lịch sử. Nếu đồng nghiệp của bạn đang cam kết các tính năng trong một cam kết nguyên tử, thì việc sao lưu dễ dàng như một cam kết hợp nhất của một nhánh tính năng. Phần lớn các nhánh tính năng nên tồn tại rất ngắn và thường xuyên được hợp nhất.
Điều đó đang được nói, nhược điểm chính của phong cách làm việc của ông là gấp đôi. Đầu tiên, nó làm cho rất khó để cộng tác trên một tính năng chưa hoàn thành. Tuy nhiên, sẽ không khó để tạo ra một chi nhánh chỉ trong những thời điểm cần thiết phải có sự hợp tác.
Thứ hai, nó làm cho việc xem xét trước khi hợp nhất rất khó khăn. Về điểm này, bạn không thực sự cần phải thuyết phục anh ta. Bạn có thể áp dụng một công cụ như github, gerrit hoặc gitlab và yêu cầu đánh giá mã yêu cầu kéo và vượt qua các bài kiểm tra tự động cho tất cả các kết hợp. Nếu bạn không làm điều gì đó như thế này, thật lòng mà nói bạn không sử dụng git cho toàn bộ tiềm năng của nó, và không có gì lạ khi đồng nghiệp của bạn không nhìn thấy tiềm năng đó.