FETCH_HEAD
ฉันเพิ่งค้นพบและนำมาใช้ ฉันต้องการสำเนาซอฟต์แวร์ท้องถิ่นจากเซิร์ฟเวอร์และฉันก็ทำ
git fetch gitserver release_1
gitserver
เป็นชื่อของเครื่องของฉันที่เก็บที่เก็บคอมไพล์
release_1
เป็นแท็กสำหรับซอฟต์แวร์เวอร์ชันหนึ่ง ด้วยความประหลาดใจของฉันrelease_1
ก็ไม่มีที่ไหนที่จะพบในเครื่องท้องถิ่นของฉัน ฉันต้องพิมพ์
git tag release_1 FETCH_HEAD
เพื่อทำสำเนาของchain ที่ติดแท็กของ commits (release_1) จาก repository ระยะไกลถึง local การดึงข้อมูลพบแท็กระยะไกลคัดลอกการกระทำไปยังเครื่องท้องถิ่นของฉันไม่ได้สร้างแท็กท้องถิ่น แต่ตั้งค่าFETCH_HEAD
เป็นค่าการส่งข้อมูลเพื่อให้ฉันสามารถค้นหาและใช้งานได้ ฉันใช้FETCH_HEAD
เพื่อสร้างแท็กโลคัลซึ่งจับคู่กับแท็กบนรีโมต นี่เป็นภาพประกอบที่ใช้งานได้จริงของสิ่งที่FETCH_HEAD
เป็นและวิธีการใช้งานและอาจเป็นประโยชน์กับคนอื่นที่สงสัยว่าเหตุใดการดึงข้อมูลคอมไพล์ไม่ได้ทำในสิ่งที่คุณคาดหวังอย่างไร้เหตุผล
ในความคิดของฉันมันเป็นการหลีกเลี่ยงที่ดีที่สุดสำหรับจุดประสงค์นั้นและวิธีที่ดีกว่าในการบรรลุสิ่งที่ฉันพยายามทำคือ
git fetch gitserver release_1:release_1
คือการเรียกใช้ release_1 และเรียกว่า release_1 ในพื้นที่ (เป็นแหล่งที่มา: ปลายทางดูhttps://git-scm.com/book/en/v2/Git-Internals-The-Refspecในกรณีที่คุณต้องการตั้งชื่ออื่น!)
คุณอาจต้องการใช้FETCH_HEAD
ในบางครั้งแม้ว่า: -
git fetch gitserver bugfix1234
git cherry-pick FETCH_HEAD
อาจเป็นวิธีที่ดีในการใช้หมายเลขแก้ไขข้อบกพร่อง 1234 จากเซิร์ฟเวอร์ Git ของคุณและปล่อยให้การรวบรวมขยะของ Git เพื่อคัดลอกสำเนาจากเซิร์ฟเวอร์เมื่อการแก้ไขได้รับการหยิบเชอร์รี่ไปที่สาขาปัจจุบันของคุณ (ฉันสมมติว่ามีแท็ก clean ที่ดีที่คอมมิตซึ่งมีการแก้ไขบั๊กทั้งหมดบนเซิร์ฟเวอร์!)
git fetch origin master
จริงจะอัปเดตไม่เพียงorigin/master
FETCH_HEAD
ดูstackoverflow.com/a/20967347/6309