19 điểm bởi GN⁺ 2025-11-27 | 13 bình luận | Chia sẻ qua WhatsApp
  • 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

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

 
dalinaum 2025-11-27

Đó là một quyết định đúng đắn.

 
hpark 2025-11-27

Có vẻ đây là một thay đổi phù hợp với thời đại.

 
lazyhack 2025-11-27

Phiên bản IT của món gà om cay.

 
sudosudo 2025-11-28

Có vẻ là một quyết định tốt.

 
joyfui 2025-11-27

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.

 
3ae3ae 2025-11-27

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ừ main về lại master...

 
vndk2234 2025-11-27

Thế kiểu này thì orphan phải làm sao đây...

 
t7vonn 2025-11-28

git 4.0 phát hành - sử dụng thuật ngữ parentally-independent thay cho orphan

 
dongho42 2025-11-28

🤣

 
wedding 2025-11-27

Tôi định đùa là vì man cũng bất tiện nên hãy đổi thành doc, nhưng trên HN đã có người bình luận vậy rồi haha

 
aqqnucs 2025-11-27

Thật sự đang lãng phí năng lượng vào chuyện hoàn toàn vô bổ.

 
skageektp 2025-11-27

Việc từng tồn tại chế độ nô lệ thì có liên quan gì đến master với slave chứ?

 
GN⁺ 2025-11-27
Ý 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

    • Một số lập trình viên kỳ cựu cũng muốn đổi tên
    • Dù sao thì “main” đã trở thành mặc định, giờ cứ thế mà dùng thôi
    • Một số người cho rằng thay đổi này là lãng phí tài nguyên kỹ thuật
      • Họ lập luận rằng ngành điện ảnh vẫn dùng thuật ngữ “mastering”, nên không có lý do gì để đổi
      • Họ cho rằng kiểu kiểm duyệt từ ngữ này làm gia tăng chia rẽ xã hội
    • Người khác thì nói đây đơn giản chỉ là vấn đề giá trị mặc định
      • Vẫn có thể cấu hình bằng init.defaultBranch = master
      • Họ thấy từ “master” nghe hay hơn, còn “main” thì khá nhạt nghĩa
    • Có người khác nữa nói rằng họ không quan tâm tới bản thân cái tên, chỉ cần tính nhất quán là được
      • Sau khi GitHub đổi nhánh mặc định thì script của họ bị hỏng, gây bất tiện một thời gian, nhưng giờ đã giải quyết xong
    • Có người khuyên rằng chỉ cần dùng lệnh git config --global init.defaultBranch master là 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

    • Nếu là vì lịch sử chế độ nô lệ ở Mỹ, thì họ thấy việc cả thế giới phải gánh chuyện đó là khá kỳ lạ
    • Họ lo ngại việc thanh lọc ngôn ngữ quá mức như thế này sẽ đi xa tới đâu
    • Để trả lời, có ý kiến giải thích rằng Git lấy tên này từ cấu trúc master/slave của BitKeeper
      • Git không dùng nguyên khái niệm “slave branch”, nhưng nguồn gốc thuật ngữ thì vẫn còn đó
      • Cũng có ý kiến cho rằng chế độ nô lệ không phải chỉ là vấn đề của riêng nước Mỹ mà là hiện tượng toàn cầu
  • Tôi thích để nhánh mặc định là develop, rồi sau đó tách sang release

    • Họ cảm thấy khái niệm “nhánh trung tâm” không thực sự phù hợp với cấu trúc của Git
    • Khi tranh luận càng căng thẳng, họ nhắc lại guideline của HN rằng cần thảo luận mang tính xây dựng
    • Có người nhớ lại rằng trước đây trong SVN, nhánh mặc định là trunk
    • Một người khác đồng ý rằng trong kho lưu trữ đang hoạt động, những cái tên tường minh tốt hơn một nhánh “ma thuật” kiểu như “master”
    • Họ nói thêm rằng Git có nhiều cách quản lý phiên bản khác nhau, nên không có một đáp án duy nhất đúng
  • Có người đùa rằng ở công ty họ, lệnh “man” cũng bị xem là không bao hàm

    • Sau đó có giải thích rằng “man” vốn có nguồn gốc từ nguyên trung tính về giới
    • Một người khác chỉ ra rằng những cuộc thảo luận kiểu này bắt nguồn từ thiếu nhận thức về ngữ cảnh
    • Có người châm biếm rằng vậy thì “hash” cũng nên bị cấm vì gợi liên tưởng tới ma túy hay sao
    • Cũng có phản ứng kiểu “đừng cho họ thêm ý tưởng”
    • Ngược lại, cũng có ý kiến ôn hòa rằng “nếu không tốn chi phí mà còn khiến mọi người thấy dễ chịu hơn thì tại sao lại phản đối?”
  • Có người hỏi vì sao “Scrum Master” lại không bị đổi

    • Có người đùa rằng họ sẽ gọi là “Scrum Main”
    • Người khác giải thích rằng Scrum Master không bắt nguồn từ khái niệm master/slave
    • Một số công ty thay vào đó dùng chức danh “Agile Champion
    • Có người khác đùa rằng “thế thì bằng thạc sĩ (MSc) cũng phải đổ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ị

    • Đáp lại là ý kiến: “cũng có thể chỉ là một nỗ lực để tử tế hơn thôi, không phải cái gì cũng là chiến tranh”
  • 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