2010-11-07 24 views
5

Tôi có một chi nhánh chính master có chứa mã ổn định. Mỗi lần tôi muốn xây dựng một cái gì đó mới tôi get checkout -b 'development', thêm mã mới, sau đó hợp nhất nó trở lại vào chủ và xóa chi nhánh phát triển. Tuy nhiên, đây có phải là việc tạo ra một cơ sở dữ liệu repo lớn hơn chỉ giữ cho nhánh phát triển và sáp nhập vào tổng thể (để phát triển được cập nhật) trước khi tôi thêm một cái gì đó mới? Tất cả các nhánh phát triển tạm thời này có chiếm thêm không gian trong repo không?Tạo và xóa nhiều nhánh trong git bad?

Trả lời

6

Tạo nhánh tạm thời cho các chủ đề/tính năng/nhiệm vụ đơn lẻ là tốt. Bạn đang làm đúng. Không chỉ dừng lại với "phát triển" - "featureA", "bugX", "bugX-testing", bất cứ điều gì bạn cần, làm cho nó!

Chi nhánh chủ yếu chiếm không gian. Đó là một con trỏ đến cam kết ở đầu của nó, vì vậy nó được biểu diễn dưới dạng một tệp (.git/refs/heads/branch-name) có nội dung đơn giản là SHA1 của cam kết đó. Nhỏ xíu. Cuối cùng, họ có thể tập hợp lại thành tệp packed-refs, chỉ là một dòng cho mỗi nhánh - tên và SHA1, thậm chí nhỏ hơn bản gốc! (Git thực hiện điều này để tránh có quá nhiều tệp trong một repo có 1000 thẻ/phiên bản bảo trì nhỏ trong lịch sử của nó). (hãy thử git reflog show để xem việc reflog cho HEAD), nhưng một lần nữa, điều đó khá nhỏ - và nó bị xóa khi bạn xóa nhánh.

1

Nó không phải là xấu và thực sự được đề nghị cho mã thử nghiệm.

Nếu bạn lo lắng về kích thước repo của bạn, hãy sử dụng 'git gc' để thu thập rác và nén nó.

4

Khi Jefromi giải thích, các chi nhánh được thiết kế rẻ đến khó hiểu. Không chỉ vậy, theo như tôi biết, Git là the only major, free VCS phân nhánh theo cách này.

Có vẻ như bạn đang sử dụng các nhánh, tôi nghĩ bạn sẽ được hưởng lợi từ GitFlow branching modelhelper extension của nvie (liên kết tới bài đăng trên blog giải thích) như một cách đơn giản, gọn gàng để tận dụng tối đa phân nhánh quản lý phát hành. (Về cơ bản, cách tiếp cận được đánh bóng hơn đối với những gì bạn có vẻ đã làm)

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