Git 3.0 sẽ sử dụng `main` làm nhánh mặc định
(thoughtbot.com)- Từ Git 3.0, khi tạo kho lưu trữ mới, nhánh mặc định sẽ tự động được đặt là
main - Thay đổi này được nêu rõ trong ghi chú bản vá Git 2.52; từ Git 3.0, lệnh
git initsẽ dùngmainthay chomaster - Software Freedom Conservancy đã công bố kế hoạch đổi tên nhánh mặc định vào tháng 6 năm 2020, và GitHub đã áp dụng thay đổi này từ tháng 10 cùng năm
- Git 3.0 vẫn chưa có ngày phát hành chính thức, và được dự đoán sẽ ra mắt vào cuối năm 2026
- Phiên bản mới sẽ bao gồm các thay đổi lớn như chuyển sang băm SHA-256, cải thiện định dạng lưu trữ, và quy trình build tích hợp Rust
Thay đổi nhánh mặc định trong Git 3.0
- Từ Git 3.0, khi tạo kho lưu trữ mới, nhánh mặc định sẽ tự động được đặt là
main- Người dùng sẽ không còn cần chỉ định nhánh mặc định thủ công nữa
- Ghi chú bản vá Git 2.52 có đoạn: “Từ Git 3.0, lệnh
git initsẽ dùng ‘main’ làm nhánh khởi tạo thay cho ‘master’” - Đây là sự chuyển hướng chính thức của dự án Git, thay thế tên gọi ‘master’ trước đây
Bối cảnh và xu hướng liên quan
- Software Freedom Conservancy đã công bố kế hoạch đổi tên nhánh mặc định của Git vào ngày 23 tháng 6 năm 2020
- GitHub đã chuyển nhánh mặc định của các kho mới sang ‘main’ từ ngày 1 tháng 10 cùng năm
- Những thay đổi này đã dẫn tới việc chuẩn hóa tên nhánh trên toàn bộ hệ sinh thái Git
Lịch phát hành Git 3.0
- Ngày phát hành chính thức của Git 3.0 hiện vẫn chưa được chốt
- Theo báo cáo của Phoronix, nhiều khả năng phiên bản này sẽ ra mắt vào cuối năm 2026
Những thay đổi kỹ thuật chính của Git 3.0
- Hàm băm mặc định sẽ chuyển từ SHA-1 sang SHA-256, giúp tăng cường bảo mật
- Định dạng lưu trữ được cải thiện, nâng cao hiệu năng và khả năng tương thích trên macOS và Windows
- Ngôn ngữ Rust sẽ được tích hợp chính thức vào quy trình build của Git, dự kiến cải thiện chất lượng mã và khả năng bảo trì
13 bình luận
Tách riêng tranh cãi về tính đúng đắn chính trị thì việc được thống nhất với GitHub cũng là điều tốt.
Vì GitHub chắc sẽ không có chuyện quay từ
mainvề lạimaster...Tôi định đùa là vì
mancũng bất tiện nên hãy đổi thànhdoc, nhưng trên HN đã có người bình luận vậy rồi hahaÝ kiến Hacker News
Thành thật mà nói thì cá nhân tôi không quá bận tâm, nhưng giờ thì “master” về cơ bản đã hết thời
init.defaultBranch = mastergit config --global init.defaultBranch masterlà có thể phớt lờ toàn bộ tranh cãi này“master” từng là nhánh mặc định, nên họ thắc mắc vì sao sang 3.0 lại đổi
Tôi thích để nhánh mặc định là
develop, rồi sau đó tách sangreleasetrunkCó người đùa rằng ở công ty họ, lệnh “man” cũng bị xem là không bao hàm
Có người hỏi vì sao “Scrum Master” lại không bị đổi
Có người chỉ trích rằng thay đổi như vậy là đầu hàng trước ý thức hệ chính trị
Có nhắc đến việc Mercurial ngay từ đầu đã dùng “default” làm tên nhánh mặc định
Có người lập luận rằng “master” là thuật ngữ sai lệch so với cấu trúc phân tán của Git, nên xét về mặt kỹ thuật thì đổi đi cũng đúng
Cũng có người nói “người bất khoan dung nhất lại thắng nữa rồi” và sẽ tiếp tục dùng “master”
Có người nói rằng trong các dự án họ tạo, nhánh mặc định luôn là “develop”, và mong cuộc tranh cãi này sớm chấm dứt
Có vẻ là một quyết định tốt.
Đó là một quyết định đúng đắn.
Thành thật mà nói tôi thấy lý do này khá ngớ ngẩn, nhưng dù sao thì tôi vẫn hoan nghênh việc nó được đổi từ 6 ký tự xuống còn 4 ký tự vì một lý do nhỏ nhặt như vậy.
Thế kiểu này thì
orphanphải làm sao đây...git 4.0 phát hành - sử dụng thuật ngữ parentally-independent thay cho orphan
🤣
Có vẻ đây là một thay đổi phù hợp với thời đại.
Thật sự đang lãng phí năng lượng vào chuyện hoàn toàn vô bổ.
Việc từng tồn tại chế độ nô lệ thì có liên quan gì đến
mastervớislavechứ?Phiên bản IT của món gà om cay.