สมมติว่าorigin/masterมีการกระทำA--B--Cของฉันและมีการกระทำlocal/masterA--B--D
จะเกิดอะไรขึ้นถ้าฉันใช้git pull --rebase?
จะเกิดอะไรขึ้นถ้าฉันใช้git pull --ff-only?
มีความแตกต่างในโครงสร้างการคอมมิตที่เกิดขึ้นหรือไม่?
สมมติว่าorigin/masterมีการกระทำA--B--Cของฉันและมีการกระทำlocal/masterA--B--D
จะเกิดอะไรขึ้นถ้าฉันใช้git pull --rebase?
จะเกิดอะไรขึ้นถ้าฉันใช้git pull --ff-only?
มีความแตกต่างในโครงสร้างการคอมมิตที่เกิดขึ้นหรือไม่?
คำตอบ:
จะเกิดอะไรขึ้นถ้าฉันใช้ git pull --rebase
git pull --rebase เทียบเท่ากับ
git fetch
git rebase origin/master
กล่าวคือการเปลี่ยนแปลงระยะไกลของคุณ ( C) จะถูกนำไปใช้ก่อนการเปลี่ยนแปลงภายใน ( D) ส่งผลให้เกิดโครงสร้างต่อไปนี้
A -- B -- C -- D
จะเกิดอะไรขึ้นถ้าฉันใช้ git pull --ff-only
มันจะล้มเหลว
git pull --ff-only สอดคล้องกับ
git fetch
git merge --ff-only origin/master
--ff-onlyใช้การเปลี่ยนแปลงระยะไกลเฉพาะในกรณีที่สามารถส่งต่อได้อย่างรวดเร็ว จากผู้ชาย:
ปฏิเสธที่จะรวมและออกด้วยสถานะที่ไม่ใช่ศูนย์เว้นแต่ว่า HEAD ปัจจุบันจะเป็นปัจจุบันอยู่แล้วหรือการผสานสามารถแก้ไขได้เป็นการกรอไปข้างหน้า
เนื่องจากสาขาในพื้นที่และระยะไกลของคุณแตกต่างกันจึงไม่สามารถแก้ไขได้โดยกรอไปข้างหน้าและgit pull --ff-onlyจะล้มเหลว
A--B--Cใช่พวกเขาทั้งสองจะส่งผลให้
git pull --rebase --ff-onlyทำอย่างไร? (สมมติว่ามี C & D)
pullสามารถแนะนำ merge commits ในขณะที่คุณอาจต้องการทำงานกับ rebase และ ff เท่านั้น
Dเปลี่ยนแปลงในท้องถิ่น คำสั่งทั้งสองจะเทียบเท่ากันหรือไม่?