การใช้git branch --all
แสดงสาขาระยะไกลและท้องถิ่นทั้งหมด Git รีเฟรชรายการนี้เมื่อใด
เมื่อดึง / ดัน และฉันจะรีเฟรชโดยใช้Git Bash ได้อย่างไร
การใช้git branch --all
แสดงสาขาระยะไกลและท้องถิ่นทั้งหมด Git รีเฟรชรายการนี้เมื่อใด
เมื่อดึง / ดัน และฉันจะรีเฟรชโดยใช้Git Bash ได้อย่างไร
คำตอบ:
หากต้องการอัปเดตรายการท้องถิ่นของสาขาระยะไกล:
git remote update origin --prune
เพื่อแสดงให้เห็นถึงสาขาท้องถิ่นและสาขาที่อยู่ห่างไกลที่ Git รู้
git branch -a
git remote update origin --prune
คือสิ่งที่ฉันกำลังมองหาขอบคุณ
git fetch
ไม่ได้ลบแคชท้องถิ่นของสาขาระยะไกล เท่านั้น--prune
ก็สามารถที่จะทำความสะอาดมันทั้งหมดขึ้น
git config remote.origin.prune true
git remote prune origin
มีเอฟเฟกต์แบบเดียวกันและคุณพิมพ์น้อยลง
ฉันเชื่อว่าหากคุณเรียกใช้git branch --all
จาก Bash รายการของสาขาระยะไกลและสาขาท้องถิ่นที่คุณเห็นจะสะท้อนให้เห็นถึงสิ่งที่ Git "รู้" ในพื้นที่ของคุณในเวลาที่คุณเรียกใช้คำสั่ง เนื่องจาก Git ของคุณเป็นรุ่นล่าสุดเสมอเกี่ยวกับสาขาท้องถิ่นในระบบของคุณรายการของสาขาท้องถิ่นจะถูกต้องเสมอ
อย่างไรก็ตามสำหรับสาขาระยะไกลนี้ไม่จำเป็นต้องเป็นกรณี Git ในพื้นที่ของคุณรู้เพียงแค่สาขาระยะไกลที่เห็นในการดึงข้อมูลครั้งล่าสุด (หรือดึง) ดังนั้นจึงเป็นไปได้ที่คุณอาจทำงานgit branch --all
และไม่เห็นสาขาระยะไกลใหม่ซึ่งปรากฏหลังจากครั้งสุดท้ายที่คุณดึงหรือดึง
เพื่อให้มั่นใจว่าท้องถิ่นของคุณและรายชื่อสาขาที่ห่างไกลจะถึงวันที่คุณสามารถทำgit fetch
ก่อนที่จะgit branch --all
ทำงาน
สำหรับข้อมูลเพิ่มเติมสาขา "ระยะไกล" ซึ่งปรากฏขึ้นเมื่อคุณเรียกใช้git branch --all
จะไม่ได้อยู่ห่างไกลจริงๆ พวกเขาอยู่ในท้องถิ่นจริง ตัวอย่างเช่นสมมติว่ามีสาขาอยู่บนรีโมทเรียกว่าfeature
คุณดึงอย่างน้อยหนึ่งครั้งใน Git ท้องถิ่นของคุณ คุณจะเห็นระบุว่าเป็นสาขาเมื่อคุณเรียกใช้origin/feature
git branch --all
แต่สาขานี้จริง ๆ แล้วเป็นสาขา Git ท้องถิ่น เมื่อคุณดำเนินgit fetch origin
การสาขาการติดตามนี้จะได้รับการอัปเดตเมื่อมีการเปลี่ยนแปลงใหม่จากรีโมต นี่คือสาเหตุที่รัฐในท้องถิ่นของคุณสามารถค้างเนื่องจากอาจมีสาขาระยะไกลใหม่หรือสาขาการติดตามของคุณอาจกลายเป็นเก่า
git fetch
ทำมัน
git fetch
--prune
ไม่ทำงานสำหรับฉันจำเป็นต้องเพิ่ม Btw ฉันไม่ใช่ downvoter;)
git fetch
ไม่ลบสาขาระยะไกลที่ถูกลบ นั่นอาจเป็นเหตุผลที่บางคน downvoted
OP ไม่ได้ขอให้ล้างข้อมูลจากรีโมททั้งหมด แต่เป็นรีโมตเริ่มต้นทุกสาขา
ดังนั้นgit fetch --prune
สิ่งที่ควรใช้
การตั้งค่าgit config remote.origin.prune true
ทำให้--prune
อัตโนมัติ ในกรณีที่เพิ่งgit fetch
จะตัดกิ่งก้านสาขาที่ห่างไกลจากสำเนาในเครื่อง ดูเพิ่มเติมพรุนอัตโนมัติด้วย Git ดึงข้อมูลหรือดึง
โปรดทราบว่านี่จะไม่ล้างสาขาท้องถิ่นที่ไม่ได้ติดตามสาขาระยะไกลอีกต่อไป ดูวิธีการตัดกิ่งติดตามท้องถิ่นที่ไม่มีอยู่ในระยะไกลอีกต่อไปสำหรับสิ่งนั้น
git fetch -p
ใช้git fetch
เพื่อดึงสาขาที่สร้างล่าสุดทั้งหมด
git fetch
ไม่ได้เปลี่ยนแปลงอะไรเลยสำหรับฉันด้วย git 2.17.1 คุณใช้เวอร์ชันและตัวเลือกใด
--prune
หรือgit config remote.NAME.prune true
เพื่อนี้เพื่อแก้ปัญหา OP
หากคุณกำลังใช้ Eclipse และต้องการดูสาขาใหม่จากอัปสตรีม
ในมุมมอง Git คลิกขวาบนที่เก็บ Git แล้วเลือก "ดึงข้อมูลจากอัปสตรีม" สิ่งนี้ดึงสาขาระยะไกลใหม่
หากคุณกำลังใช้ Eclipse
พวกเขาทั้งหมดควรอยู่ในนั้น คลิกขวาและ "ชำระเงิน"
git ls-remote
อาจน่าสนใจที่นี่