วิธีลบสาขาใน Git ในเครื่องและจากระยะไกล

วิธีลบสาขาใน Git ในเครื่องและจากระยะไกล

หนึ่งในคุณสมบัติที่แข็งแกร่งที่สุดของ Git คือกิ่งก้านที่มีน้ำหนักเบา ช่วยให้คุณทำงานในขั้นตอนการพัฒนาคู่ขนานได้อย่างมีประสิทธิภาพ นักพัฒนาอาจสร้างสาขาแยกสำหรับจุดบกพร่องแยกต่างหาก ทั้งเวลาและพื้นที่สาขาแทบไม่มีค่าใช้จ่าย





รับซ่อมจอราคาถูกๆ

เวิร์กโฟลว์ git จำนวนมากจัดการกับทั้งสาขาระยะยาวและชั่วคราว ดังนั้นจึงมักมีความจำเป็นต้องลบสาขาระหว่างการพัฒนา บางครั้งมีความจำเป็นต้องลบสาขาที่ใช้ร่วมกัน จากเซิร์ฟเวอร์ระยะไกล เช่นเดียวกับสาขาในเครื่อง





ทำไมต้องลบสาขา?

อย่างแรก หากคุณยังคงคุ้นเคยกับ git อยู่ มีโอกาสค่อนข้างดีที่คุณจะสร้างสาขาและตัดสินใจว่าคุณไม่จำเป็นต้องทำ หรือคุณอาจกำลังทดลองกับกิ่งก้านและต้องการเคลียร์ตัวเอง นี่เป็นเรื่องปกติเนื่องจากการแตกสาขาใน git เป็นการดำเนินการที่มีน้ำหนักเบา มันเร็วมากและใช้พื้นที่ดิสก์อย่างมีประสิทธิภาพ





ด้วยเหตุนี้ เวิร์กโฟลว์การพัฒนา git จำนวนมากจึงสนับสนุนการแตกสาขา แม้แต่งานขนาดเล็กหรือสั้นมาก ตัวอย่างเช่น กลยุทธ์ทั่วไปคือ สร้างสาขา สำหรับการแก้ไขข้อผิดพลาดเพียงครั้งเดียว สิ่งนี้เป็นจริงแม้ว่าจะเกี่ยวข้องกับผู้เขียนเพียงคนเดียวที่ทำการเปลี่ยนแปลงบรรทัดเดียวในไฟล์เดียว

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



ที่เก็บตัวอย่างพร้อมสาขา

ตัวอย่างต่อไปนี้อ้างถึงที่เก็บตัวอย่างที่มีโครงสร้างดังต่อไปนี้:

$ git branch -vv
1 dev 1ae41e8 [origin/dev] first commit
2 * main 1ae41e8 [origin/main] first commit

โปรดทราบว่าแต่ละสาขาในพื้นที่มีสาขาต้นน้ำที่สอดคล้องกันจากรีโมต: ต้นทาง .





การลบสาขาโดยใช้ Command Line

ไวยากรณ์คำสั่งพื้นฐานสำหรับการลบสาขาคือ:

git branch (-d | -D) [-r] ...

รูปแบบที่ง่ายที่สุดของคำสั่งจะลบสาขาในพื้นที่ หากรวมการเปลี่ยนแปลงทั้งหมดเข้าด้วยกัน:





$ git branch -d dev

คุณไม่สามารถลบสาขาที่กำลังใช้งานอยู่ได้ หากคุณพยายามทำ คุณจะได้รับข้อความดังนี้:

error: Cannot delete branch 'main' checked out at '/tmp/sandbox'

เมื่อทุกอย่างเรียบร้อย คุณจะเห็นข้อความยืนยัน:

Deleted branch dev (was 1ae41e8).

หากคุณลบสาขาที่มีอยู่เฉพาะในเครื่อง โดยไม่ได้รวมการเปลี่ยนแปลง คุณจะสูญเสียการเปลี่ยนแปลงเหล่านั้น ดังนั้น git จะปฏิเสธที่จะลบสาขาในสถานการณ์ดังกล่าว โดยค่าเริ่มต้น:

error: The branch ‘dev’ is not fully merged.
If you are sure you want to delete it, run 'git branch -D dev’.

เมื่อข้อความแสดงข้อผิดพลาดแจ้ง คุณสามารถบังคับให้ลบด้วยปุ่ม -NS ธง. อย่างไรก็ตาม git จะอนุญาตให้คุณลบสาขาในพื้นที่ที่ยังไม่ได้รวมหากมีอยู่ในระยะไกล:

warning: deleting branch ‘dev’ that has been merged to
'refs/remotes/origin/dev’, but not yet merged to HEAD.
Deleted branch dev (was 9a6d20b).

การลบสาขาระยะไกลนั้นค่อนข้างแตกต่าง คุณจะใช้ git push คำสั่งพร้อมกับ -NS ตั้งค่าสถานะที่จะลบ หลังจากนั้นให้ระบุชื่อของรีโมท (มักจะ ต้นทาง ) และชื่อสาขา:

$ git push -d origin dev
To github.com:bobbykjack/sandbox.git
- [deleted] dev

การลบสาขาในพื้นที่และระยะไกลด้วย GitHub Desktop

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

GitHub Desktop จะไม่อนุญาตให้คุณลบสาขาเริ่มต้น—เช่น main—แม้ว่า git เองจะรองรับสิ่งนี้ หากสาขาเริ่มต้นเป็นสาขาที่ใช้งานอยู่ในปัจจุบัน แอปจะปิดใช้งานการทำงานของเมนู

หากสาขาเป็นตัวแทนของสาขาระยะไกล GitHub Desktop จะมีตัวเลือกในการลบออกจากรีโมตด้วย:

การลบสาขาโดยใช้ GitKraken

GitCrack แสดงสาขาในพื้นที่และระยะไกลของที่เก็บของคุณในแถบด้านข้างทางซ้ายมือ คุณต้องลบแต่ละรายการแยกกัน.

วางเมาส์เหนือชื่อสาขาที่ต้องการแล้วคลิก สาขา เมนูการทำงานที่ดูเหมือนจุดแนวตั้งสามจุด จากเมนู ให้เลือก ลบ :

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

สะท้อนพฤติกรรมเริ่มต้นของโปรแกรมบรรทัดคำสั่ง git คุณต้องเปลี่ยนไปใช้สาขาอื่นที่ไม่ใช่สาขาที่คุณกำลังลบ. มิฉะนั้น คุณจะเห็นข้อความแสดงข้อผิดพลาด:

การลบสาขาในพื้นที่และระยะไกลโดยใช้ Tower

การลบสาขาด้วย ทาวเวอร์ คล้ายกับการลบสาขาด้วย GitKraken สาขาในพื้นที่และระยะไกลจะแสดงในแผงทางด้านซ้ายมือ คลิกขวาที่สาขาใดก็ได้แล้วเลือกตัวเลือกลบจากเมนูบริบท:

ข้อแตกต่างที่สำคัญประการหนึ่งคือสามารถลบสาขาระยะไกลพร้อมกับสาขาในพื้นที่ ระหว่างการยืนยัน:

การลบสาขาบน GitHub

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

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

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

โปรดทราบว่าหลังจากลบแล้ว คุณจะเห็นปุ่มเพื่อ คืนค่า สาขา. อย่างไรก็ตาม นี่เป็นเพียงคุณลักษณะการเลิกทำที่มีประโยชน์ ในกรณีที่คุณคลิกไอคอนลบโดยไม่ได้ตั้งใจ อย่าพึ่งเชื่อเพราะทันทีที่คุณรีเฟรชหรือออกจากหน้า คุณจะสูญเสียตัวเลือกนี้ไป!

การลบสาขาในพื้นที่และระยะไกลบน Bitbucket

Bitbucket เช่น GitHub จะไม่อนุญาตให้คุณลบสาขาเริ่มต้น Bitbucket เรียกสิ่งนี้ว่า สาขาหลัก ใน การตั้งค่าพื้นที่เก็บข้อมูล . คุณสามารถลบสาขาอื่น ๆ ที่ระบุไว้ใน สาขา แท็บผ่านทางที่เกี่ยวข้อง การกระทำ เมนู:

คุณยังสามารถลบสาขาได้มากกว่าหนึ่งสาขาในครั้งเดียว หากคุณกำลังดำเนินการล้างข้อมูลครั้งใหญ่:

การลบสาขาเป็นส่วนหนึ่งของเวิร์กโฟลว์ Git ทั่วไป

สาขา Git สามารถทำให้เวิร์กโฟลว์ของคุณซับซ้อน โดยเฉพาะอย่างยิ่งกับสาขาในพื้นที่ ระยะไกล และการติดตาม แต่สำหรับการพัฒนาแบบง่ายๆ ในแต่ละวัน คุณมักจะสร้างและลบสาขาในพื้นที่อยู่ตลอดเวลา นี่เป็นลักษณะสำคัญของเวิร์กโฟลว์ git ทั่วไปที่คุณควรคุ้นเคย

แบ่งปัน แบ่งปัน ทวีต อีเมล วิธีใช้ Git Branches เพื่อจัดโครงสร้างโครงการการเขียนโปรแกรมของคุณ

ในบทความนี้ เราจะมาดูกันว่าการโยงโค้ดของคุณหมายถึงอะไร ทำอย่างไร และวิธีจัดการการอัปเดตของ 'git branch หลัก'

อ่านต่อไป
หัวข้อที่เกี่ยวข้อง
  • การเขียนโปรแกรม
  • GitHub
เกี่ยวกับผู้เขียน Bobby Jack(58 บทความเผยแพร่)

Bobby เป็นผู้ที่ชื่นชอบเทคโนโลยีซึ่งทำงานเป็นนักพัฒนาซอฟต์แวร์มาเกือบสองทศวรรษ เขาหลงใหลในการเล่นเกม ทำงานเป็นบรรณาธิการบทวิจารณ์ที่ Switch Player Magazine และหมกมุ่นอยู่กับทุกแง่มุมของการเผยแพร่ออนไลน์และการพัฒนาเว็บ

เพิ่มเติมจาก Bobby Jack

สมัครรับจดหมายข่าวของเรา

เข้าร่วมจดหมายข่าวของเราสำหรับเคล็ดลับทางเทคนิค บทวิจารณ์ eBook ฟรี และดีลพิเศษ!

คลิกที่นี่เพื่อสมัครสมาชิก