วิธีแสดงการเปลี่ยนแปลงที่ไม่มีข้อผูกมัดใน Git และ Git บางอันมีรายละเอียดแตกต่างกัน


202

ฉันจะแสดงการเปลี่ยนแปลงที่ไม่มีข้อผูกมัดใน Git ได้อย่างไร

ฉันSTFW'edและคำสั่งเหล่านี้ไม่ทำงาน:

teyan@TEYAN-THINK MINGW64 /d/nano/repos/PSTools/psservice (teyan/psservice)
$ git status
On branch teyan/psservice
Your branch is up-to-date with 'origin/teyan/psservice'.
Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)

        modified:   psservice.c
        modified:   psservice.vcxproj.filters


teyan@TEYAN-THINK MINGW64 /d/nano/repos/PSTools/psservice (teyan/psservice)
$ git diff

teyan@TEYAN-THINK MINGW64 /d/nano/repos/PSTools/psservice (teyan/psservice)
$ git diff master
fatal: ambiguous argument 'master': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'

คำตอบ:


370

วิธีแสดงการเปลี่ยนแปลงที่ไม่มีข้อผูกมัดใน Git

git diffคำสั่งที่คุณกำลังมองหาอยู่

git diff - แสดงการเปลี่ยนแปลงระหว่างการกระทำกระทำและต้นไม้ทำงาน ฯลฯ


นี่คือตัวเลือกบางอย่างที่เปิดเผยซึ่งคุณสามารถใช้ได้

git diff(ไม่มีพารามิเตอร์)
พิมพ์ความแตกต่างระหว่างไดเรกทอรีการทำงานและดัชนี

git diff --cached:
พิมพ์ความแตกต่างระหว่างดัชนีและ HEAD (การกระทำปัจจุบัน)

git diff HEAD:
พิมพ์ความแตกต่างระหว่างไดเรกทอรีการทำงานของคุณกับ HEAD

git diff --name-only
แสดงชื่อไฟล์ที่ถูกเปลี่ยนเท่านั้น

git diff --name-status
แสดงชื่อและสถานะของไฟล์ที่ถูกเปลี่ยนเท่านั้น

git diff --color-words
คำต่อคำแทนคำต่อบรรทัด

นี่คือตัวอย่างของผลลัพธ์สำหรับgit diff --color-words:

ป้อนคำอธิบายรูปภาพที่นี่


ป้อนคำอธิบายรูปภาพที่นี่


2
เมื่อคุณเห็นเครื่องหมายจุดโคลอนที่ท้ายหมายถึง git แสดงหน้าแรก - กด Enter เพื่อก้าวผ่านการเปลี่ยนแปลงอื่น ๆ (เช่นคุณสามารถใช้ไฟล์ cat | more)
ตัวชี้ NULL

42

คุณได้แสดงการเปลี่ยนแปลงแล้ว (น่าจะเรียกใช้git add) ดังนั้นเพื่อให้ได้รับความแตกต่างคุณต้องเรียกใช้:

git diff --cached

(ข้อความธรรมดาgit diffจะแสดงการเปลี่ยนแปลงที่ไม่จัดเตรียมไว้เท่านั้น)

ตัวอย่างเช่น: ตัวอย่างการใช้แคช git diff


0

สำหรับฉันสิ่งเดียวที่ทำงานได้คือ

git diff HEAD

รวมถึงไฟล์ staged แสดงgit diff --cachedเฉพาะไฟล์ staged

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.