สาขาหัวข้อคอมไพล์คืออะไร? แตกต่างจากสาขาธรรมดาไม่ทางใดก็ทางหนึ่ง? มีสาขาไหนบ้างที่ไม่ใช่สาขาหัวข้อ?
สาขาหัวข้อคอมไพล์คืออะไร? แตกต่างจากสาขาธรรมดาไม่ทางใดก็ทางหนึ่ง? มีสาขาไหนบ้างที่ไม่ใช่สาขาหัวข้อ?
คำตอบ:
สาขากระทู้เป็นกิ่งมักจะมีน้ำหนักเบาที่คุณสร้างในประเทศและที่มีชื่อที่มีความหมายสำหรับคุณ ซึ่งเป็นที่ที่คุณอาจทำงานเพื่อแก้ไขข้อบกพร่องหรือคุณลักษณะ (เรียกอีกอย่างว่าสาขาคุณลักษณะ) ซึ่งคาดว่าจะใช้เวลาดำเนินการสักครู่
สาขาประเภทอื่นคือ "remote branch" หรือ "remote-tracking branch" สาขาประเภทนี้เป็นไปตามการพัฒนางานของคนอื่นและถูกเก็บไว้ในที่เก็บของคุณเอง คุณอัปเดตสาขานี้เป็นระยะ (โดยใช้git fetch
) เพื่อติดตามสิ่งที่เกิดขึ้นที่อื่น เมื่อคุณพร้อมที่จะติดตามการเปลี่ยนแปลงของคนอื่นคุณจะใช้git pull
ทั้งการดึงและรวม
ฉันยังได้เห็นสาขาอีกประเภทหนึ่งซึ่งโดยพื้นฐานแล้วเป็นโครงสร้างไฟล์ที่แยกจากกันโดยสิ้นเชิงในที่เก็บเดียวกัน ตัวอย่างเช่นที่เก็บ Gitมีหัวที่ชื่อmanและhtmlที่มีเนื้อหาที่แตกต่างกันอย่างสิ้นเชิงจากสาขาหลัก ไม่รู้ว่ากิ่งไม้ประเภทนี้มักเรียกว่าอะไร
ไม่ใช่คำศัพท์ทางเทคนิค มันหมายถึงสาขาที่สร้างขึ้นเพื่อใช้คุณลักษณะเฉพาะหรือแก้ไขข้อบกพร่อง "หัวข้อ" เป็นเหตุผลในการสร้างสาขาโดยพื้นฐานแล้ว
https://github.com/dchelimsky/rspec/wiki/Topic-Branchesอธิบายสิ่งนี้ได้ดี:
สาขา "หัวข้อ" คือสาขาแยกต่างหากที่คุณใช้เมื่อทำงานกับ "หัวข้อ" เดียว (การแก้ไขข้อบกพร่องคุณลักษณะใหม่หรือแนวคิดทดลอง) แนะนำให้ทำงานในสาขาหัวข้อแทนที่จะอยู่ด้านบนของ "master" โดยตรงเนื่องจาก:
{... ไปที่ลิงค์ ... }
ดังนั้นด้วยเหตุผลทั้งหมดนี้ขอแนะนำให้ใช้สาขาหัวข้อในการเตรียมการส่งแม้กระทั่งการมีส่วนร่วมง่ายๆเช่นการแก้ไขข้อบกพร่องครั้งเดียวและอื่น ๆ
ตัวอย่างนี้ยังยกตัวอย่าง ซึ่งจริงๆแล้วทำให้ฉันคิดว่านี่อาจเป็นสิ่งที่ร้านค้าส่วนใหญ่ทำอยู่แล้ว โครงการที่คล่องตัวทั้งหมดที่ฉันเคยทำ ฉันโหวตให้ "มันไม่ใช่ศัพท์ทางเทคนิค" เพราะฉันรู้สึกว่ามันกระทบกับตะปูบนหัว
ดูเหมือนว่าสาขาที่โดดเด่นและสำคัญที่สุดที่ไม่ใช่สาขาหัวข้อจะเป็นสาขาเผยแพร่ในที่เก็บข้อมูลหลักที่เปิดเผยต่อสาธารณะใช่ไหม
นั่นอาจจะเหมาะกับคุณ แต่เป็นเรื่องของคุณและโครงการที่คุณกำลังคิด Git ไม่ได้กำหนด
ระบบควบคุมเวอร์ชันส่วนใหญ่ (โดยเฉพาะระบบรวมศูนย์) กำหนดหรือบังคับใช้เวิร์กโฟลว์เฉพาะรวมถึงสิ่งที่ควรใช้สำหรับสาขา Git (และ VCS ที่มีการกระจายมากที่สุดในระดับหนึ่ง) พิจารณาว่าเวิร์กโฟลว์นั้นใช้กิ่งก้านอะไรเมื่อใดที่จะกระทำการใช้ repos ที่แตกต่างกัน ฯลฯ ทั้งหมดนี้ถูกเลือกโดยผู้ใช้และข้อตกลงระหว่างผู้ใช้ (นโยบาย) ดังนั้น Git จึงไม่บังคับใช้ในทางเทคนิค
นี่เป็นหนึ่งในสิ่งที่ทำให้ Git ยากสำหรับฉันที่จะเรียนรู้ โอลิเวอร์สตีลอธิบายเรื่องนี้จากมุมมองของผู้เขียนเกี่ยวกับการกระทำนโยบาย