2016-03-14 19 views
47

Làm cách nào để hiển thị các thay đổi không được cam kết trong Git?Làm cách nào để hiển thị các thay đổi không được cam kết trong Git

I SFTW'ed và các lệnh này không hoạt động.

[email protected] 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 


[email protected] MINGW64 /d/nano/repos/PSTools/psservice (teyan/psservice) 
$ git diff 

[email protected] 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>...]' 

Trả lời

85

Làm thế nào để hiển thị những thay đổi không bị giam trong Git

Lệnh bạn đang tìm kiếm là git diff.

git diff - Hiển thị những thay đổi giữa cam kết, cam kết và cây làm việc, vv


Dưới đây là một số tùy chọn nó phơi bày mà bạn có thể sử dụng

git diff (không có tham số)
In các khác biệt giữa thư mục làm việc của bạn và chỉ mục.

git diff --cached:
In ra sự khác biệt giữa các index và HEAD (hiện cam kết).

git diff HEAD:
In ra sự khác biệt giữa của bạn thư mục làm việc và các HEAD.

git diff --name-only
Hiện chỉ tên các tập tin đã thay đổi.

git diff --name-status
Chỉ tên và tình trạng các tập tin đã thay đổi.

git diff --color-words
Word bằng từ khác thay cho từng dòng.

Dưới đây là một mẫu của các đầu ra cho git diff --color-words:

enter image description here

18

Bạn đã dàn dựng sự thay đổi (có lẽ bằng cách chạy git add), do đó để có được diff của họ, bạn cần phải chạy:

git diff --cached 

(Một đồng bằng git diff sẽ chỉ hiển thị những thay đổi unstaged.)

Các vấn đề liên quan