19 คะแนน โดย GN⁺ 2025-11-27 | 13 ความคิดเห็น | แชร์ทาง WhatsApp
  • ตั้งแต่ Git 3.0 เป็นต้นไป เมื่อสร้างรีโพซิทอรีใหม่ ระบบจะตั้งค่าบรাঞ্চเริ่มต้นเป็น main โดยอัตโนมัติ
  • การเปลี่ยนแปลงครั้งนี้ถูกระบุไว้ใน Git 2.52 patch notes โดยตั้งแต่ Git 3.0 คำสั่ง git init จะใช้ main แทน master
  • Software Freedom Conservancy ได้ประกาศแผนเปลี่ยนชื่อบรานช์เริ่มต้นในเดือนมิถุนายน 2020 และ GitHub เริ่มนำไปใช้ในเดือนตุลาคมของปีเดียวกัน
  • Git 3.0 ยังไม่มีการกำหนดวันเปิดตัวอย่างเป็นทางการ และคาดว่าจะเผยแพร่ราว ปลายปี 2026
  • เวอร์ชันใหม่นี้มีการเปลี่ยนแปลงสำคัญ เช่น การเปลี่ยนไปใช้แฮช SHA-256, การปรับปรุงรูปแบบการจัดเก็บ, และ กระบวนการบิลด์ที่ผสานรวม Rust

การเปลี่ยนบรานช์เริ่มต้นใน Git 3.0

  • ตั้งแต่ Git 3.0 เป็นต้นไป เมื่อสร้างรีโพซิทอรีใหม่ บรานช์เริ่มต้นจะถูกตั้งเป็น main โดยอัตโนมัติ
    • ผู้ใช้ไม่จำเป็นต้องกำหนดบรานช์เริ่มต้นด้วยตนเองอีกต่อไป
  • ใน Git 2.52 patch notes มีข้อความว่า “ตั้งแต่ Git 3.0 เป็นต้นไป คำสั่ง git init จะใช้ main เป็นบรานช์เริ่มต้นแทน master
  • การเปลี่ยนแปลงนี้ถือเป็น การเปลี่ยนทิศทางอย่างเป็นทางการของโครงการ Git โดยแทนที่ชื่อ master เดิม

ภูมิหลังและความเคลื่อนไหวที่เกี่ยวข้อง

กำหนดการเปิดตัว Git 3.0

การเปลี่ยนแปลงทางเทคนิคสำคัญใน Git 3.0

  • ฟังก์ชันแฮชพื้นฐานจะเปลี่ยนจาก SHA-1 เป็น SHA-256 เพื่อเพิ่มความปลอดภัย
  • รูปแบบการจัดเก็บได้รับการปรับปรุง ทำให้ประสิทธิภาพและความเข้ากันได้บน macOS และ Windows ดีขึ้น
  • ภาษา Rust ถูกผสานรวมเข้ากับกระบวนการบิลด์ของ Git อย่างเป็นทางการ ซึ่งจะช่วยยกระดับคุณภาพโค้ดและการบำรุงรักษา

13 ความคิดเห็น

 
3ae3ae 2025-11-27

แยกจากประเด็นถกเถียงเรื่องความถูกต้องทางการเมือง การที่ทำให้สอดคล้องกับ GitHub ก็ถือเป็นเรื่องที่ดีนะครับ
เพราะ GitHub คงไม่มีทางกลับจาก main ไปเป็น master อีก...

 
wedding 2025-11-27

ผมกำลังจะเล่นมุกว่า man ก็ใช้งานไม่สะดวกเหมือนกัน งั้นเปลี่ยนเป็น doc กันเถอะ แต่ใน HN มีคนคอมเมนต์ไปแล้วครับ 555

 
GN⁺ 2025-11-27
ความเห็นจาก Hacker News
  • พูดตามตรง ส่วนตัวไม่ได้ใส่ใจนัก แต่ตอนนี้ “master” ก็แทบจะหมดบทบาทไปแล้ว

    • แม้แต่นักพัฒนาระดับ ซีเนียร์ บางส่วนก็อยากให้เปลี่ยนชื่อ
    • ไม่ว่าอย่างไร “main” ก็กลายเป็นค่าปริยายไปแล้ว และถึงเวลาที่ควรปล่อยผ่านได้แล้ว
    • บางคนมองว่าการเปลี่ยนแปลงนี้เป็นการ สิ้นเปลืองทรัพยากรด้านวิศวกรรม
      • ในวงการภาพยนตร์ก็ยังใช้คำว่า “mastering” อยู่ และพวกเขาโต้แย้งว่าไม่มีเหตุผลที่ต้องเปลี่ยน
      • พวกเขามองว่า การเซ็นเซอร์คำ แบบนี้ยิ่งทำให้สังคมแตกแยก
    • อีกฝ่ายบอกว่านี่เป็นแค่เรื่องของค่าเริ่มต้นเท่านั้น
      • ยังตั้งค่าเป็น init.defaultBranch = master ได้อยู่
      • รู้สึกว่าคำว่า “master” ดูเท่ และ “main” มีความหมายค่อนข้างจืด
    • อีกบางคนบอกว่าไม่สนใจชื่อนั้นเอง ขอแค่มี ความสม่ำเสมอ ก็พอ
      • หลังจาก GitHub เปลี่ยน default branch แล้วสคริปต์เคยพังจนไม่สะดวกอยู่พักหนึ่ง แต่ตอนนี้แก้หมดแล้ว
    • มีคนหนึ่งแนะนำสั้น ๆ ว่าสามารถเมินดราม่านี้ได้ด้วยคำสั่ง git config --global init.defaultBranch master
  • มีคนสงสัยว่าทำไม “master” ซึ่งเป็น default branch มาตลอด ถึงเพิ่งเปลี่ยนใน 3.0

    • ถ้าเป็นเพราะ ประวัติศาสตร์การค้าทาส ของสหรัฐฯ ก็รู้สึกแปลกที่ทั้งโลกต้องมารับภาระเรื่องนี้ไปด้วย
    • กังวลว่าการชำระล้างภาษาที่มากเกินไปแบบนี้จะไปได้ไกลแค่ไหน
    • มีคำตอบอธิบายว่า Git นำชื่อนี้มาจากโครงสร้าง master/slave ของ BitKeeper
      • แม้ Git จะไม่ได้ใช้แนวคิด “slave branch” ตรง ๆ แต่ที่มาของคำศัพท์ยังคงอยู่
      • และยังมีความเห็นว่าเรื่องทาสไม่ได้เป็นปัญหาของอเมริกาเท่านั้น แต่เป็น ปรากฏการณ์ระดับโลก
  • ฉันชอบตั้ง default branch เป็น develop แล้วค่อยแตกไปที่ release มากกว่า

    • รู้สึกว่าแนวคิดเรื่อง “central branch” ไม่ค่อยสอดคล้องกับโครงสร้างของ Git
    • ยิ่งการถกเถียงบานปลาย ก็ยิ่งนึกถึงกฎของ HN ที่บอกว่าควรมี การสนทนาที่สร้างสรรค์
    • มีคนหนึ่งนึกย้อนไปว่าเมื่อก่อนใน SVN ค่าเริ่มต้นคือ trunk
    • อีกคนเห็นด้วยว่าใน repository ที่ยัง active อยู่ การใช้ชื่อที่ชัดเจนดีกว่าชื่อ branch แบบมีมนตร์ขลังอย่าง “master”
    • พร้อมเสริมว่า Git มีแนวทางจัดการเวอร์ชันได้หลายแบบ จึงไม่มีวิธีเดียวที่ถูกต้องเสมอไป
  • มีคนเล่นมุกว่าคำสั่ง “man” ก็ไม่ inclusive เหมือนกัน และที่บริษัทก็มีคนมองเป็นปัญหา

    • จากนั้นมีคำอธิบายตามมาว่า “man” มี รากศัพท์ที่เป็นกลางทางเพศ มาตั้งแต่เดิม
    • อีกคนชี้ว่าการถกเถียงแบบนี้เกิดจาก การขาดความเข้าใจบริบท
    • มีคนเสียดสีว่าอย่างนั้น “hash” ก็ควรถูกแบนเพราะทำให้นึกถึงยาเสพติดด้วยหรือเปล่า
    • แล้วก็มีคนตอบว่า “อย่าไปให้ไอเดียแบบนั้นเลย”
    • แต่อีกด้านหนึ่งก็มีความเห็นแบบกลาง ๆ ว่า “ถ้าไม่เสียต้นทุนอะไรและทำให้คนรู้สึกดีขึ้น ทำไมต้องคัดค้าน”
  • มีคำถามว่าทำไม “Scrum Master” ถึงยังไม่ถูกเปลี่ยน

    • มีคนแซวว่าจะเรียกมันว่า “Scrum Main” แทน
    • อีกคนอธิบายว่า Scrum Master ไม่ได้มีที่มาจากแนวคิด master/slave
    • บางบริษัทใช้คำว่า “Agile Champion” แทน
    • อีกคนก็เล่นมุกต่อว่า “งั้นปริญญาโท (MSc) ก็ควรเปลี่ยนด้วยไหม”
  • บางคนวิจารณ์ว่าการเปลี่ยนแปลงแบบนี้คือ การยอมจำนนต่ออุดมการณ์ทางการเมือง

    • แล้วก็มีคนตอบกลับว่า “อาจเป็นแค่ความพยายามที่จะใจดีกับผู้อื่นก็ได้ ไม่ใช่ทุกอย่างต้องเป็นสงคราม”
  • มีการพูดถึงว่า Mercurial ใช้ชื่อ default branch ว่า “default” มาตั้งแต่แรก

  • บางคนแย้งว่า “master” เป็นคำที่ไม่เหมาะกับ โครงสร้างแบบกระจายศูนย์ ของ Git อยู่แล้ว ดังนั้นในเชิงเทคนิคการเปลี่ยนก็ถือว่าถูกต้อง

  • มีคนพูดว่า “คนที่ ไม่อดทนอดกลั้นที่สุด ชนะอีกแล้ว” พร้อมประกาศว่าจะใช้ “master” ต่อไป

  • มีคนบอกว่าในโปรเจกต์ที่ตัวเองสร้าง เขาตั้ง default branch เป็น “develop” มาตลอด และหวังว่าข้อถกเถียงนี้จะจบลงเสียที

 
sudosudo 2025-11-28

ดูเหมือนว่าจะเป็นการตัดสินใจที่ดี

 
dalinaum 2025-11-27

เป็นการตัดสินใจที่ถูกต้องครับ

 
joyfui 2025-11-27

พูดตรงๆ ว่าผมคิดว่าเหตุผลมันชวนอึ้งอยู่เหมือนกัน แต่ยังไงก็ขอต้อนรับด้วยเหตุผลง่ายๆ ว่ามันเปลี่ยนจาก 6 ตัวอักษรเป็น 4 ตัวอักษร

 
vndk2234 2025-11-27

ถ้าเป็นแบบนี้ แล้ว orphan จะเอายังไงล่ะ...

 
t7vonn 2025-11-28

git 4.0 เปิดตัว - ใช้คำว่า parentally-independent แทน orphan

 
dongho42 2025-11-28

🤣

 
hpark 2025-11-27

ดูเหมือนว่าจะเป็นการเปลี่ยนแปลงที่เหมาะกับยุคสมัยครับ

 
aqqnucs 2025-11-27

เปลืองพลังงานไปกับเรื่องไร้สาระจริง ๆ

 
skageektp 2025-11-27

ข้อเท็จจริงที่ว่าเคยมีระบบทาส มันเกี่ยวอะไรกับคำว่า master slave กันล่ะ

 
lazyhack 2025-11-27

ทัคบกกึมทังเวอร์ชัน IT