Git Fetch vs Pull: อะไรคือความแตกต่างระหว่างคำสั่ง Git Fetch และ Git Pull?

Git pullและfetchเป็นสองคำสั่งที่ผู้ใช้ Git ใช้เป็นประจำ มาดูความแตกต่างระหว่างคำสั่งทั้งสอง

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

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

นั่นคือที่มาfetchและpullเข้ามา

git fetch เป็นคำสั่งที่บอกให้คอมไพล์ในเครื่องของคุณดึงข้อมูลเมตาดาต้าล่าสุดจากต้นฉบับ (ยังไม่ได้ทำการถ่ายโอนไฟล์ใด ๆ แต่เหมือนกับการตรวจสอบว่ามีการเปลี่ยนแปลงใด ๆ ที่พร้อมใช้งาน)

git pull ในทางกลับกันทำและนำ (คัดลอก) การเปลี่ยนแปลงเหล่านั้นจากที่เก็บระยะไกล

ตัวอย่างเช่น:

git pull origin ankur bugfix

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

  • สำเนาหนึ่งชุดคือที่เก็บของคุณเองพร้อมประวัติการกระทำของคุณเอง (ที่บันทึกไว้แล้วจึงจะพูดได้)
  • สำเนาที่สองคือสำเนาการทำงานของคุณที่คุณกำลังแก้ไขและสร้าง (ยังไม่ได้ผูกมัดกับ repo ของคุณ)
  • สำเนาที่สามคือสำเนาที่เก็บระยะไกล "แคช" ในเครื่องของคุณ (อาจเป็นต้นฉบับจากที่ที่คุณโคลนของคุณ)

คุณสามารถใช้git fetchเพื่อทราบการเปลี่ยนแปลงที่ทำใน repo / branch ระยะไกลนับตั้งแต่การดึงครั้งสุดท้ายของคุณ สิ่งนี้มีประโยชน์ในการอนุญาตให้ตรวจสอบก่อนทำการดึงจริงซึ่งอาจเปลี่ยนไฟล์ในสาขาปัจจุบันและสำเนาการทำงานของคุณ (และอาจสูญเสียการเปลี่ยนแปลงของคุณ ฯลฯ )

git fetch git diff ...origin