ใน Git สาขาเป็นเพียงรายการสั่งซื้อ (aka: checkins) สิ่งที่อาจสร้างความสับสนให้กับผู้ใช้ใหม่คือสาขาไม่จำเป็นต้องมีชื่อ (แม้ว่าในสถานการณ์ส่วนใหญ่ที่คุณต้องการ) และไม่มีอะไรพิเศษโดยเฉพาะเกี่ยวกับสาขาใดสาขาหนึ่ง ( master
สาขาเป็นเพียงสาขาเริ่มต้นที่สร้างขึ้นสำหรับคุณเมื่อคุณเริ่มต้นพื้นที่เก็บข้อมูล)
คุณอาจรู้อยู่แล้ว แต่ Git นั้นแตกต่างจากระบบควบคุมเวอร์ชันอื่น ๆ เช่น "การโค่นล้ม" ที่เป็นที่นิยมเพราะ "สำเนาที่ใช้งานได้" (ในภาษาที่ใช้ในการโค่นล้ม) ทุกแห่งเป็นพื้นที่เก็บข้อมูลของมัน ... ในความเป็นจริง พิเศษเกี่ยวกับการคัดลอกเฉพาะใด ๆ ยกเว้นว่ามีการคัดลอกหนึ่งชุดโดยทั่วไปได้รับการยอมรับว่าเป็น "มาตรฐาน" ซึ่งใช้เพื่อเก็บผลิตภัณฑ์สุดท้าย
ดังนั้นกลับไปที่คำถามของคุณ ... พื้นที่เก็บข้อมูล "canonical" ที่คุณโคลนเมื่อคุณเริ่มต้นสำเนาโลคัลมีสาขา "ต้นแบบ" เป็นค่าเริ่มต้น และมันติดอยู่รอบ ๆ ตอนนี้ถ้าคุณมีคอมพิวเตอร์ที่มีที่เก็บข้อมูลหลักคุณสามารถเข้าสู่ระบบและเรียกใช้:
git branch -d master
อย่างไรก็ตามหากคุณไม่สามารถทำได้คุณยังสามารถทำได้จากเครื่องท้องถิ่นของคุณ git branch
คำสั่งมี-r
ตัวเลือกที่มีผลต่อพื้นที่เก็บข้อมูลระยะไกล กล่าวอีกนัยหนึ่งการรันคำสั่งต่อไปนี้ควรใช้งานได้:
git branch -d -r master
โปรดทราบว่าในทั้งสองกรณี ฉันสมมติว่าmaster
ได้รับการผสานอย่างสมบูรณ์ในประวัติการพัฒนาที่สำเนาในเครื่องของคุณกำลังนั่งอยู่ หากคุณไม่เคยใช้มาmaster
ก่อน (เช่น: คุณเคยเช็คอินdevelopment
หรือproduction
) คุณไม่ต้องกังวล อย่างไรก็ตามหากคุณ (หรือคนอื่น) ตรวจสอบสิ่งต่าง ๆ ในmaster
แล้วคุณอาจมีปัญหา คุณสามารถบังคับให้ลบโดยการเปลี่ยน-d
ไป-D
ในคำสั่งดังกล่าว; แต่ฉันขอแนะนำให้ตรวจสอบเพื่อดูว่ามีอะไรอยู่master
ก่อน! หากคุณไม่สามารถเข้าถึงคอมพิวเตอร์ระยะไกลคุณอาจไม่สามารถกู้คืนได้!
ยังไงซะ; ถ้าคุณ (หรือใครก็ตาม) เป็นใหม่ Git ผมขอแนะนำให้อ่านGit จากด้านล่างขึ้นโดยจอห์น Wiegley แม้ว่าฉันเคยใช้ Git มาก่อนแล้วพบบทความนี้ แต่ฉันก็ไม่เข้าใจเลยว่ามันทำงานอย่างไรจนกระทั่งฉันอ่านมัน มันค่อนข้างมีประโยชน์!
git branch -d -r master
ไม่ลบสาขาระยะไกลอีกต่อไป แต่จะลบความรู้เกี่ยวกับสาขาระยะไกลของสำเนาในเครื่องของคุณ ครั้งต่อไปคุณgit fetch
สาขาจะกลับมา! คุณจะต้องวิ่งgit push origin :master
แทน โดยพื้นฐานแล้วสิ่งที่คุณกำลังทำอยู่ที่นี่คือการผลักสาขาที่ไม่มีค่า (ชื่อสาขาที่ว่างเปล่าไปทางซ้าย:
) เหนือส่วนบนของรีโมตสาขา (ชื่อสาขาทางด้านขวาของ:
) ลบอย่างมีประสิทธิภาพ