ท่ามกลางข้อมูลที่นำเสนอโดยgit help fetch
มีรายการเล็ก ๆ นี้:
-p, --prune
After fetching, remove any remote-tracking branches which no longer exist on the remote.
ดังนั้นอาจgit fetch -p
เป็นสิ่งที่คุณกำลังมองหา?
แก้ไข: ตกลงสำหรับผู้ที่ยังคงโต้วาทีคำตอบนี้ 3 ปีหลังจากข้อเท็จจริงนี่เป็นข้อมูลเพิ่มเติมเล็กน้อยว่าทำไมฉันจึงนำเสนอคำตอบนี้ ...
ก่อนอื่น OP บอกว่าพวกเขาต้องการ "ลบกิ่งก้านสาขาเหล่านั้นที่ถูกสร้างขึ้นจากกิ่งก้านสาขาที่ห่างไกล [ที่ไม่ได้อยู่บนรีโมท] อีกต่อไป" นี่เป็นไปไม่ได้อย่างไม่น่าสงสัยgit
เลย นี่คือตัวอย่าง
สมมติว่าผมมี repo บนเซิร์ฟเวอร์ส่วนกลางและมันมีสองสาขาที่เรียกว่าและA
B
(สาขาไม่จริงยัง) ถ้าผมโคลน repo ภายในระบบของฉันที่โคลนฉันจะมี refs ท้องถิ่นที่เรียกว่าและorigin/A
origin/B
ตอนนี้สมมติว่าฉันทำต่อไปนี้:
git checkout -b A origin/A
git checkout -b Z origin/B
git checkout -b C <some hash>
ข้อเท็จจริงที่เกี่ยวข้องที่นี่คือฉันด้วยเหตุผลบางอย่างเลือกที่จะสร้างสาขาใน repo ท้องถิ่นของฉันที่มีชื่อที่แตกต่างจากต้นกำเนิดของมันและฉันยังมีสาขาท้องถิ่นที่ยังไม่มี (ยัง) อยู่ในแหล่งกำเนิด repo
ตอนนี้สมมติว่าฉันลบทั้งสองA
และB
สาขาใน repo ระยะไกลและปรับปรุง repo ท้องถิ่นของฉัน ( git fetch
บางรูปแบบ) ซึ่งทำให้ refs ท้องถิ่นของฉันorigin/A
และorigin/B
หายไป ตอนนี้ repo ท้องถิ่นของฉันมีสามสาขายังคงA
, และZ
C
ไม่มีสิ่งเหล่านี้มีสาขาที่เกี่ยวข้องใน repo ระยะไกล พวกเขาสองคนคือ "สร้างจาก ... กิ่งไม้ที่อยู่ห่างไกล" แต่ถึงแม้ว่าฉันรู้ว่าเคยมีสาขาที่เรียกว่าB
ต้นกำเนิดฉันไม่มีทางรู้ว่าZ
มันถูกสร้างขึ้นจากB
เนื่องจากมีการเปลี่ยนชื่อในกระบวนการอาจมีเหตุผลที่ดี ดังนั้นจริงๆแล้วหากไม่มีกระบวนการภายนอกที่บันทึกเมตาดาต้ากำเนิดสาขาหรือมนุษย์ที่รู้ประวัติมันเป็นไปไม่ได้ที่จะบอกได้ว่าสาขาใดในสามสาขาถ้ามี OP จะกำหนดเป้าหมายเพื่อนำออก หากไม่มีข้อมูลภายนอกที่git
ไม่ได้รับการบำรุงรักษาโดยอัตโนมัติgit fetch -p
อยู่ใกล้คุณเท่าที่จะทำได้และวิธีอัตโนมัติใด ๆ สำหรับการพยายามที่สิ่งที่ OP ขอให้มีความเสี่ยงในการลบสาขามากเกินไปหรือหายไปบางส่วนที่ OP ต้องการ ต้องการลบ
มีสถานการณ์อื่น ๆ เช่นกันเช่นถ้าฉันสร้างกิ่งแยกออกสามกิ่งorigin/A
เพื่อทดสอบวิธีที่แตกต่างกันสามอย่างกับบางอย่างแล้วก็origin/A
หายไป ตอนนี้ฉันมีสามสาขาซึ่งเห็นได้ชัดว่าไม่ตรงกับชื่อที่ฉลาด แต่พวกเขาถูกสร้างขึ้นจากorigin/A
และดังนั้นการตีความที่แท้จริงของคำถาม OPs จะต้องลบทั้งสาม อย่างไรก็ตามนั่นอาจไม่เป็นที่ต้องการหากคุณสามารถหาวิธีที่เชื่อถือได้เพื่อจับคู่ ...