ขั้นตอนที่คุณระบุไว้จะใช้งานได้ แต่มีวิธีอีกมากมายที่ให้ตัวเลือกเพิ่มเติมแก่คุณ:
git checkout dmgr2 # gets you "on branch dmgr2"
git fetch origin # gets you up to date with origin
git merge origin/master
fetchคำสั่งที่สามารถทำได้ที่จุดใดก่อนmergeเช่นคุณสามารถสลับคำสั่งของดึงข้อมูลและเช็คเอาท์เพราะfetchเพียงแค่ไปมากกว่าที่จะตั้งชื่อระยะไกล ( origin) และบอกว่ามัน "ทุกอย่างไม่น่าเชื่อคุณได้ว่าฉันทำไม่ได้ "คือทั้งหมดกระทำในทุกสาขา พวกมันจะถูกคัดลอกไปยังที่เก็บของคุณ แต่ตั้งชื่อorigin/branchให้กับสาขาใด ๆ ที่ตั้งชื่อbranchบนรีโมต
ณ จุดนี้คุณสามารถใช้ตัวแสดงใด ๆ ( git log, gitkฯลฯ ) เพื่อดู "สิ่งที่พวกเขามี" ที่คุณทำไม่ได้และในทางกลับกัน บางครั้งสิ่งนี้มีประโยชน์สำหรับ Warm Fuzzy Feelings ("อ๊ะใช่นั่นคือสิ่งที่ฉันต้องการ") และบางครั้งมันมีประโยชน์สำหรับการเปลี่ยนกลยุทธ์ทั้งหมด ("โอ้โหฉันยังไม่ต้องการสิ่งนั้น")
สุดท้ายmergeคำสั่งจะใช้เวลาที่กำหนดกระทำซึ่งคุณสามารถตั้งชื่อเป็นและไม่สิ่งที่มันจะนำมาในการที่กระทำและบรรพบุรุษของตนเพื่อสิ่งที่สาขาที่คุณอยู่ในเมื่อคุณเรียกใช้origin/master mergeคุณสามารถแทรก--no-ffหรือ--ff-onlyป้องกันการกรอไปข้างหน้าหรือรวมเฉพาะในกรณีที่ผลลัพธ์เป็นการกรอไปข้างหน้าหากต้องการ
เมื่อคุณใช้ลำดับ:
git checkout dmgr2
git pull origin master
pullสั่งคำสั่ง git วิ่งแล้วเทียบเท่าคุณธรรมของgit fetch git merge origin/masterดังนั้นนี่เกือบจะเหมือนกับการทำสองขั้นตอนด้วยมือ แต่มีความแตกต่างเล็กน้อยที่อาจไม่เกี่ยวข้องกับคุณ (โดยเฉพาะอย่างยิ่งfetchขั้นตอนที่ดำเนินการโดยpullนำมาเท่านั้น origin/masterและจะไม่อัปเดตการอ้างอิงใน repo ของคุณ: 1มีความมุ่งมั่นใหม่ ๆ ที่อ้างถึงโดยFETCH_HEADอ้างอิงพิเศษเท่านั้น)
หากคุณใช้ความชัดเจนมากขึ้นgit fetch origin(จากนั้นเลือกดูรอบ ๆ ) จากนั้นgit merge origin/masterเรียงลำดับคุณยังสามารถนำท้องถิ่นของคุณmasterมาอัพเดทด้วยรีโมทด้วยการfetchวิ่งเพียงครั้งเดียวผ่านเครือข่าย:
git fetch origin
git checkout master
git merge --ff-only origin/master
git checkout dmgr2
git merge --no-ff origin/master
เช่น
1ส่วนที่สองนี้ได้รับการเปลี่ยนแปลง - ฉันพูดว่า "แก้ไข" - ใน git 1.8.4 ซึ่งตอนนี้อัปเดตการอ้างอิง "remote branch" อ้างอิงอย่างฉวยโอกาส (ตามที่บันทึกในรีลีสกล่าวว่าการตัดสินใจออกแบบโดยเจตนาเพื่อข้ามการอัปเดต แต่ปรากฎว่ามีคนชอบ git มากกว่านั้นหากคุณต้องการ SHA-1 สาขาระยะไกลเก่าค่าเริ่มต้นจะถูกบันทึกไว้ใน และสามารถกู้คืนได้จาก reflog ซึ่งจะช่วยให้คุณลักษณะ git 1.9 / 2.0 ใหม่สำหรับการค้นหา rebases ต้นน้ำ)