- 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 init sẽ dùng main thay cho master
- 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 init sẽ 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
Lịch phát hành 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
Đó là một quyết định đúng đắn.
Có vẻ đây là một thay đổi phù hợp với thời đại.
Phiên bản IT của món gà om cay.
Có vẻ là một quyết định tốt.
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.
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...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
🤣
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 hahaThậ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ứ?Ý 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