ในกรณีที่มี local branch ซึ่งติดตาม remote branch อยู่ แล้ว remote branch นั้นถูกลบไป สามารถตั้งค่าคำสั่งแบบกำหนดเองเพื่อช่วยลบ local branch ที่หลงเหลืออยู่เฉพาะบนเครื่องของเราได้

  • อาศัยข้อเท็จจริงที่ว่าเมื่อ remote branch ถูกลบในขณะที่อยู่ในสถานะติดตาม สถานะจะเปลี่ยนเป็น [gone]
  • คำสั่ง git gone จะทำ 2 อย่าง
    1. ทำ prune ผ่าน git fetch -p (อัปเดตข้อมูลของ remote branch ที่ถูกลบ)
    2. ลบ local branch ทั้งหมดที่กำลังติดตาม remote branch ที่ถูกลบไป
  • local branch ที่ไม่มี remote branch ให้ติดตามจะไม่ถูกลบ

หากใช้คำสั่งด้านล่างในเทอร์มินัลที่สามารถรัน git ได้ ก็จะเพิ่มคำสั่ง git gone เป็น custom command ได้

  • git config --global alias.gone "! git fetch -p && git for-each-ref --format '%(refname:short) %(upstream:track)' | awk '\$2 == \"[gone]\" {print \$1}' | xargs -r git branch -D"

ยังไม่มีความคิดเห็น

ยังไม่มีความคิดเห็น