Menu
CoddyTech

Git Diff

Cập nhật lần cuối

git diff hiển thị chính xác từng dòng thay đổi giữa hai trạng thái của repository. Khi không có đối số, nó cho thấy những gì bạn đã sửa nhưng chưa stage. Thêm --staged để xem những gì đã stage, chỉ định hai commit hoặc hai nhánh để so sánh chúng, hoặc chỉ định một tệp để thu hẹp phạm vi.

Thử các lệnh này trong playground terminal: một shell thật ngay trên trình duyệt, không cần cài đặt gì.

git diff cho thấy chính xác những dòng thay đổi giữa hai trạng thái: dòng bị xóa và dòng được thêm.

Cú pháp

LệnhTác dụng
git diffThay đổi chưa stage so với index
git diff --stagedThay đổi đã stage so với commit cuối
git diff HEADMọi thay đổi kể từ commit cuối
git diff main featureKhác biệt giữa hai nhánh
git diff <hash1> <hash2>Khác biệt giữa hai commit
git diff -- file.txtThay đổi của một tệp

Tình huống thường gặp

Mục tiêuLệnh
Xem những gì sắp commitgit diff --staged
Xem phần việc chưa commitgit diff
So sánh nhánh của bạn với maingit diff main
Chỉ xem tên các tệp đã thay đổigit diff --name-only

Câu hỏi thường gặp về git diff

Mặc định git diff hiển thị gì?
Khi không có đối số, git diff hiển thị các thay đổi trong working tree chưa được stage, tức là những gì bạn đã sửa kể từ lần git add gần nhất. Để xem những gì đã stage (và sẽ được commit tiếp theo), dùng git diff --staged; để xem mọi thứ kể từ commit cuối, dùng git diff HEAD.
git diff và git diff --staged khác nhau thế nào?
git diff so sánh working tree với staging area (thay đổi chưa stage). git diff --staged (hay --cached) so sánh staging area với commit cuối (thay đổi đã stage). Gộp lại, hai lệnh cho thấy hai nửa của phần việc chưa commit.
Làm sao để so sánh hai nhánh hoặc hai commit?
Chỉ định chúng: git diff main feature cho thấy hai nhánh khác nhau ở đâu, còn git diff <hash1> <hash2> so sánh hai commit. Thêm -- <file> ở cuối để giới hạn việc so sánh trong một tệp.
Làm sao để chỉ xem tệp nào đã thay đổi, không cần diff đầy đủ?
Dùng git diff --name-only để chỉ xem tên tệp, hoặc git diff --stat để xem bản tóm tắt gồm từng tệp và số dòng đã thay đổi. Hai lệnh này rất tiện để nắm nhanh tổng quan trước khi đọc diff đầy đủ từng dòng.
Có thể luyện tập lệnh này online không?
Có. Mở playground terminal để chạy git diff trong một shell thật ngay trên trình duyệt, không cần cài đặt gì. Khóa học Git tương tác miễn phí của Coddy cũng hướng dẫn cách xem lại thay đổi từng bước.
Hình minh họa các ngôn ngữ lập trình của Coddy

Học Git cùng Coddy

Bắt đầu