จะทำอย่างไรกับสาขาหลังจากผสาน


342

ฉันมีสองสาขาและmaster branch1ฉันเพิ่งรวมbranch1เข้ากับmasterและฉันก็ทำกับสาขานั้น ฉันควรจะลบมันหรือปล่อยให้มันนั่งเฉยๆ การลบมันจะทำให้ข้อมูลสูญหายหรือไม่


คำตอบ:


410

หลังจากการรวมจะเป็นการปลอดภัยที่จะลบสาขา:

git branch -d branch1

นอกจากนี้คอมไพล์จะเตือนคุณ (และปฏิเสธที่จะลบสาขา) หากคิดว่าคุณยังไม่ได้รวมเข้าด้วยกัน หากคุณลบสาขา (ด้วยgit branch -D) ที่ยังไม่ได้รวมเข้าด้วยกันอย่างสมบูรณ์คุณจะต้องทำเทคนิคบางอย่างเพื่อให้ได้ผลลัพธ์ที่ยังไม่ได้จมกลับไป (ดูด้านล่าง)

มีเหตุผลบางอย่างที่จะทำให้สาขาอยู่รอบ ๆ ตัวอย่างเช่นหากเป็นสาขาฟีเจอร์คุณอาจต้องการแก้ไขข้อบกพร่องในฟีเจอร์นั้นยังคงอยู่ในสาขานั้น

หากคุณต้องการลบสาขาในรีโมตโฮสต์คุณสามารถทำได้:

git push origin :branch1

การดำเนินการนี้จะลบสาขาบนรีโมต (ซึ่งจะไม่ส่งผลกระทบต่อที่เก็บข้อมูลที่เช็กเอาต์แล้ว แต่จะไม่ป้องกันไม่ให้บุคคลใด ๆ ที่มีการเข้าถึงแบบพุชเพื่อผลัก / สร้างใหม่)


git reflogแสดงการตรวจสอบแก้ไขล่าสุด สาขาใด ๆ ที่คุณเช็คเอาต์ในประวัติพื้นที่เก็บข้อมูลล่าสุดจะปรากฏขึ้นเช่นกัน นอกเหนือจากนั้นgit fsckจะเป็นเครื่องมือในการเลือกในกรณีของการสูญเสียในคอมไพล์


หากคุณต้องการบันทึกสาขาคุณสามารถสร้างแท็กก่อนที่จะลบ หากคุณต้องการกลับไปที่จุดนั้นคุณสามารถชำระเงินแท็กนั้นได้
Joqus

3
@Joqus ฉันอยากจะแนะนำให้เก็บเป็นสาขาในกรณีนี้ อย่าเพิ่งเผยแพร่
Jonas Schäfer

ในกรณี - ถ้าคุณต้องการ "ผสาน" สาขาอย่างสมบูรณ์ก่อนที่จะลบให้กดสาขานั้นหลังจากทำการรวม แต่ก่อนที่จะลบ บางอย่างเช่นgit checkout master && git merge branch1 && git push origin branch1 && git branch -d branch1
avtomaton

25

ฉันชอบRENAMEมากกว่าDELETE

สาขาของฉันทั้งหมดตั้งชื่อในรูปแบบของ

  • Fix/fix-<somedescription> หรือ
  • Ftr/ftr-<somedescription> หรือ
  • เป็นต้น

การใช้ทาวเวอร์เป็นส่วนหน้าคอมไพล์ของฉันก็เรียบร้อยจัดทั้งหมดFtr/, Fix/, Test/ฯลฯ ลงในโฟลเดอร์
เมื่อฉันทำกับสาขาฉันเปลี่ยนพวกเขาเป็นDone/...-<description>ให้พวกเขา

ด้วยวิธีนี้พวกเขายังคงอยู่ที่นั่น (ซึ่งมีประโยชน์ในการให้ประวัติ) และฉันสามารถกลับไปรู้ว่ามันคืออะไร (คุณสมบัติแก้ไขทดสอบ ฯลฯ )


4
คุณเปลี่ยนชื่อสาขาระยะไกลหรือไม่
VitalyB

22
ดูเหมือนว่าซ้ำซ้อนเพื่อให้สาขาเหล่านี้และบ้าที่จะเปลี่ยนชื่อให้พวกเขา ฉันทำอะไรบางอย่างหายไปหรือเปล่า คุณสามารถสร้างสาขาใหม่ได้ตลอดเวลา stackoverflow.com/questions/3640764/…
ksav

ไม่มีเหตุผลที่จะเก็บกิ่งไม้หลังจากที่พวกเขาถูกรวมเข้าด้วยกัน
rastaman

2
+1 สำหรับแนวคิดในการเปลี่ยนชื่อเป็นแก้ไขทดสอบและทำ ... การรักษาสาขาเป็นวิธีที่ผู้รับเหมาได้รับเงินใน บริษัท ของฉัน
jpfreire

1

ถ้าคุณจะไปข้างหน้าและลบสาขาหลังจากรวม
เพียง แต่ดูแล
ทั้งหมดเชื่อมโยงหลายมิติ URL ที่อ้างอิงของสาขาถูกลบของคุณจะได้รับการBROKEN

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.