Cách hiển thị các thay đổi không được cam kết trong Git và một số khác biệt về Git


202

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

Tôi STFW'ed và các lệnh này không hoạt động:

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>...]'

Câu trả lời:


370

Cách hiển thị các thay đổi không được cam kết trong Git

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

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


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

git diff(không có tham số)
In ra sự 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 chỉ mục và CHÍNH (cam kết hiện tại).

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

git diff --name-only
Chỉ hiển thị tên của các tập tin thay đổi.

git diff --name-status
Chỉ hiển thị tên và trạng thái của các tập tin thay đổi.

git diff --color-words
Từng chữ khác nhau thay vì từng dòng.

Đây là một mẫu của đầu ra cho git diff --color-words:

nhập mô tả hình ảnh ở đây


nhập mô tả hình ảnh ở đây


2
Khi bạn thấy dấu nhắc dấu hai chấm ở cuối, điều đó có nghĩa là git đã hiển thị trang đầu tiên - nhấn enter để chuyển qua các thay đổi khác (như bạn có thể với tệp mèo | thêm)
trỏ NULL

42

Bạn đã dàn dựng các thay đổi (có lẽ bằng cách chạy git add), vì vậy để có được sự khác biệt của chúng, bạn cần phải chạy:

git diff --cached

(Một đồng bằng git diffsẽ chỉ hiển thị những thay đổi chưa được phân loại.)

Ví dụ: Ví dụ sử dụng bộ nhớ cache git diff


0

Đối với tôi, điều duy nhất làm việc là

git diff HEAD

bao gồm các tập tin dàn dựng, git diff --cachedchỉ hiển thị các tập tin dàn dựng.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.