2012-04-01 29 views
5

Cá nhân, nếu tôi nhìn vào git hoặc repo linux với gitk, tôi hoàn toàn bị choáng ngợp bởi số lượng khổng lồ hòa trộn/nhánh. Tôi hoàn toàn không biết điều gì đang xảy ra.Git: làm thế nào có thể git/linux bảo trì duy trì rất nhiều chi nhánh

Tôi giả định rằng nói chung bạn cố gắng có lịch sử tuyến tính nhất có thể và chỉ một vài chi nhánh (ví dụ: chủ, bảo trì, tiếp theo, pu - thats it) trong repo công khai. I E. Tôi giả định rằng việc sáp nhập ít khi và hầu hết rebase được sử dụng. Rõ ràng tôi đã sai.

  1. Tôi tự hỏi những gì các nhà bảo trì git/linux làm gì để có một cái nhìn tổng quan dễ dàng tốt
  2. Tại sao họ không sử dụng rebase thường xuyên hơn và có chi nhánh nhiều hơn chỉ thuyền trưởng, nhập Maint, pu tiếp theo?
+0

Chi nhánh rẻ nên chúng được tận dụng thường xuyên :) – Nic

+0

Năm 2007 [Google Tech Talk] (https://www.youtube.com/watch?v=4XpnKHJAok8) Linus Torvalds cung cấp một số ví dụ về cách anh ấy sử dụng git , đặc biệt là hạt nhân và git. – andrybak

Trả lời

3

Có một điều rất quan trọng cần hiểu trong mối quan hệ với Git và rebase.

Do not rebase commits that you have pushed to a public repository. 

Trong thời gian bạn đang hợp nhất địa phương, bạn có thể sử dụng rebase bao nhiêu lần tùy thích, khiến địa phương trở nên cục bộ. Nếu bạn thích một histroy tuyến tính. Nói cách khác, bạn sẽ không thấy công việc rebase họ đã làm.

Các phần khác về số lượng các chi nhánh chỉ đơn giản là một loại kinh nghiệm và hơn thế nữa một câu hỏi về khái niệm. Tôi đã thực hiện phân nhánh với hơn 300 chi nhánh song song .. đó chỉ là một loại taming con thú bằng cách sử dụng các công ước và một khái niệm tốt.

2

Tôi không phải là nhà phát triển hạt nhân, và chắc chắn không thể nói cho họ. Here's một tài liệu tham khảo mà Linus nói về nó một số người, mà tôi nghĩ rằng câu trả lời câu hỏi của bạn. Tôi sẽ bổ sung thêm rằng có rất nhiều ngẫu nhiên chi nhánh là khó hiểu, nhưng áp đặt một trật tự chút về nó làm cho nó dễ dàng hơn để có các chi nhánh IMHO. (Ví dụ về thứ tự có thể đặt tên các nhánh chủ đề là topic/short_name, bao gồm các thư cam kết có ý nghĩa, người giữ một số tài liệu bên ngoài và thực sự nói chuyện với nhau hoặc bất kỳ tài liệu nào phù hợp với môi trường của bạn.)

Tôi cũng sẽ bao gồm một tham chiếu đến this công việc, kể từ khi nó được practally cần đọc Git, và áp dụng cho câu hỏi của bạn.

+0

+1 để liên kết với luồng công việc Git đó. Đó là cách giải thích Git tốt nhất mà tôi từng thấy. –

0

Hãy nhớ rằng, khi bạn đang nhân rộng một repo git, bạn có thể nhận được tất cả các chi nhánh từ xa, nhưng bạn chỉ tạo ra và kiểm tra một chi nhánh địa phương (thường master, theo dõi remotes/origin/master)

(Đây là lý do tại sao bạn có thắc mắc như "Track all remote git branches as local branches")

Tùy thuộc vào chủ đề mà bạn quan tâm, bạn sẽ chỉ kiểm và theo dõi một chi nhánh cụ thể, làm một số công việc, và rebase thường xuyên chi nhánh địa phương của bạn trên đầu trang của origin/branch để giữ công việc của bạn up-to- ngày.

Bạn sẽ không hợp nhất các chi nhánh công khai chính thức với chi nhánh của mình: đó sẽ là hợp nhất lại và chúng nên tránh, như được minh họa trong "What is the right git workflow with shared feature branches?".

0

Kiểm tra cột Greg K-H Ask a kernel developer: anh giải thích chi tiết quy trình làm việc của mình. Greg từng là người duy trì nhánh ổn định; ông là người bảo trì hiện tại cho nhiều hệ thống phụ, bao gồm cả USB.

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