มีสองสถานการณ์ที่จะเปรียบเทียบไฟล์:
สถานการณ์ที่ 1:เปรียบเทียบไฟล์ที่สาขาระยะไกล (ทั้งสองสาขาควรมีอยู่ในที่เก็บระยะไกล)
สถานการณ์จำลอง 2:เปรียบเทียบไฟล์โลคัล (ที่สำเนาพื้นที่ทำงานโลคัล) กับไฟล์ที่ที่เก็บรีโมต
ตรรกะนั้นง่าย หากคุณระบุชื่อสาขาสองชื่อเพื่อแตกต่างกันมันจะทำการเปรียบเทียบสาขาระยะไกลเสมอและหากคุณระบุชื่อสาขาเพียงชื่อเดียวมันจะทำการเปรียบเทียบสำเนาการทำงานในพื้นที่ของคุณกับ repo ระยะไกล (ที่คุณให้ไว้) คุณสามารถใช้ช่วงเพื่อจัดเก็บที่เก็บระยะไกล
เช่นชำระเงินที่สาขา
git checkout branch1
git diff branch2 [filename]
ในกรณีนี้หากคุณระบุชื่อไฟล์มันจะเปรียบเทียบสำเนาชื่อไฟล์ในเครื่องของคุณกับสาขาระยะไกลชื่อ " branch2 "
git diff branch1 branch2 [filename]
ในกรณีนี้มันจะเปรียบเทียบชื่อไฟล์จากสาขาระยะไกลชื่อ " branch1 " กับ " branch2 "
git diff ..branch2 [filename]
ในกรณีนี้มันจะเปรียบเทียบชื่อไฟล์จากสาขาระยะไกลชื่อ " branch1 " กับ " branch2 " ดังนั้นมันเหมือนกับข้างต้น แต่ถ้าคุณเพิ่งสร้างสาขาจากสาขาอื่นพูดว่า "ต้นแบบ" และสาขาในปัจจุบันของคุณไม่ได้อยู่ในพื้นที่เก็บข้อมูลระยะไกลก็จะเปรียบเทียบระยะไกล " ต้นแบบ " เทียบกับระยะไกล " branch2 "
หวังว่ามันจะมีประโยชน์
git diff branch1 branch2 myfile.cs
และถ้าทั้งสองรุ่นที่คุณต้องการเปรียบเทียบเป็นต้นไม้ที่ทำงานคุณสามารถใช้ (--
ไม่จำเป็นอีกต่อไปเนื่องจากสามารถใช้การโต้แย้งการแก้ไขได้ถึงสองครั้งเท่านั้น)