ในHEAD
(คอมมิตล่าสุด) ฉันมีไฟล์ชื่อfoo
. ในโครงสร้างการทำงานปัจจุบันของฉันฉันเปลี่ยนชื่อเป็นbar
และแก้ไขด้วย
ผมต้องการที่จะgit diff
foo
อยู่ในHEAD
และbar
ในต้นไม้การทำงานปัจจุบันของฉัน
ในHEAD
(คอมมิตล่าสุด) ฉันมีไฟล์ชื่อfoo
. ในโครงสร้างการทำงานปัจจุบันของฉันฉันเปลี่ยนชื่อเป็นbar
และแก้ไขด้วย
ผมต้องการที่จะgit diff
foo
อยู่ในHEAD
และbar
ในต้นไม้การทำงานปัจจุบันของฉัน
คำตอบ:
ระบุเส้นทางอย่างชัดเจน:
git diff HEAD:full/path/to/foo full/path/to/bar
ตรวจสอบ--find-renames
ตัวเลือกในเอกสารgit-diff
เครดิต: twaggs .
git diff <path> <path>
แม้ว่าไฟล์เหล่านั้นจะไม่ได้อยู่ในที่เก็บ git ก็ตาม
git diff --help
จับคู่เฉพาะรูปแบบการคอมมิตไม่ใช่ไฟล์ git diff [<options>] --no-index [--] <path> <path>
git diff a b
--no-index
ตัวเลือกเมื่อเรียกใช้คำสั่งในโครงสร้างการทำงานที่ควบคุมโดย Git และอย่างน้อยหนึ่งในเส้นทางที่ชี้นอกโครงสร้างการทำงานหรือเมื่อเรียกใช้คำสั่งนอกโครงสร้างการทำงานที่ควบคุมโดย Git .
ฉันเชื่อว่าการใช้--no-index
คือสิ่งที่คุณกำลังมองหา:
git diff [<options>] --no-index [--] <path> <path>
ตามที่ระบุไว้ในคู่มือคอมไพล์:
แบบฟอร์มนี้คือการเปรียบเทียบสองเส้นทางที่กำหนดบนระบบไฟล์ คุณสามารถ ละเว้น
--no-index
ตัวเลือกเมื่อเรียกใช้คำสั่งในต้นไม้ทำงานควบคุมโดย Git และอย่างน้อยหนึ่งในจุดเส้นทางนอกต้นทำงานหรือเมื่อใช้คำสั่งนอกต้นไม้ทำงานควบคุมโดย Git
หากคุณใช้ tortoise git คุณสามารถคลิกขวาที่ไฟล์และคอมไพล์โดย: คลิกขวาที่ไฟล์แรกและผ่านเมนูย่อยของ tortoisegit ให้เลือก "Diff later" จากนั้นในไฟล์ที่สองคุณสามารถคลิกขวาที่ไฟล์นี้ได้ ไปที่เมนูย่อย tortoisegit จากนั้นเลือก "Diff with yourfilenamehere.txt"
การใช้ PhpStorm ฉันเพียงแค่คัดลอกรหัสการกระทำก่อนหน้าและเปรียบเทียบกับเวอร์ชันปัจจุบันโดยใช้เครื่องมือ "เปรียบเทียบกับคลิปบอร์ด" ในตัว
git diff --no-index --word-diff old_file.txt new_file.txt
ล็ก--no-index มีไว้สำหรับสิ่งนั้นเช่น(--word-diff เน้นการเปลี่ยนแปลงทีละคำไม่ใช่แค่บรรทัดซึ่งเป็นประโยชน์อย่างยิ่งสำหรับข้อความขนาดยาว)