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
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.
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ó.
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 model và helper 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)
- 1. Xóa Dissallow của nhánh Master trong git
- 2. Gắn thẻ nhiều nhánh trong git?
- 3. Tạo chi nhánh bên trong một nhánh trong git
- 4. git dàn dựng và cam kết giữa nhiều chi nhánh
- 5. Git - theo dõi nhiều nhánh từ xa?
- 6. Xóa các chi nhánh ở xa trong Git
- 7. Không thể xóa chi nhánh từ xa trong git
- 8. Git-svn: tạo và đẩy chi nhánh/thẻ mới?
- 9. Composer và nhiều chi nhánh
- 10. Tạo chi nhánh git dựa trên một chi nhánh khác
- 11. Cam kết thay đổi cho nhiều chi nhánh trong Git
- 12. Phân tích Sonar sử dụng nhiều nhánh git trong Jenkins
- 13. Plugin và chi nhánh Jenkins git
- 14. Xóa nhiều tệp trong bộ lọc git-branch
- 15. Git - Không thể xóa chi nhánh từ xa
- 16. Bí danh Git để xóa chi nhánh từ xa
- 17. Đóng băng chi nhánh Git
- 18. Làm cách nào để xóa chi nhánh Git với TortoiseGit
- 19. git: Cách xóa chi nhánh ref địa phương?
- 20. Sự khác biệt giữa 'git push -f' và 'xóa nhánh từ xa và đẩy lại'
- 21. giải thích lệnh cho git xóa chi nhánh từ xa
- 22. Git hoàn tác chi nhánh địa phương xóa
- 23. Chia nhánh git thành hai nhánh?
- 24. Git sáp nhập hotfix vào nhiều chi nhánh
- 25. Việc xóa một nhánh trong git có xóa nó khỏi lịch sử không?
- 26. git xóa nhánh phát triển khỏi máy chủ git từ xa
- 27. Chuyển đổi nhánh trong git
- 28. Xóa các chi nhánh được liệt kê theo chi nhánh git -a
- 29. "git pull" hoặc "git merge" giữa các nhánh chính và chi nhánh phát triển
- 30. Cách sử dụng đúng git và các chi nhánh