Bagaimana cara menunjukkan perubahan tanpa komitmen pada Git dan beberapa Git berbeda secara detail


202

Bagaimana cara saya menunjukkan perubahan yang tidak dikomit di Git?

Saya STFW'ed , dan perintah ini tidak berfungsi:

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

Jawaban:


370

Bagaimana cara menunjukkan perubahan tanpa komitmen pada Git

Perintah yang Anda cari adalah git diff.

git diff - Tampilkan perubahan antara komit, komit dan pohon kerja, dll


Berikut adalah beberapa opsi yang dapat Anda gunakan

git diff(tanpa parameter)
Cetak perbedaan antara direktori kerja Anda dan indeks.

git diff --cached:
Cetak perbedaan antara indeks dan KEPALA (komit saat ini).

git diff HEAD:
Cetak perbedaan antara direktori kerja Anda dan KEPALA.

git diff --name-only
Hanya tampilkan nama file yang diubah.

git diff --name-status
Hanya tampilkan nama dan status file yang diubah.

git diff --color-words
Kata demi kata berbeda, bukan baris demi baris.

Berikut adalah contoh output untuk git diff --color-words:

masukkan deskripsi gambar di sini


masukkan deskripsi gambar di sini


2
Ketika Anda melihat tanda titik dua di bagian akhir, itu berarti git telah menunjukkan halaman pertama - tekan enter untuk melangkah melalui perubahan lainnya (seperti yang Anda bisa dengan file cat | lebih lanjut)
NULL pointer

42

Anda telah melakukan perubahan (mungkin dengan menjalankan git add), jadi untuk mendapatkan perbedaannya, Anda perlu menjalankan:

git diff --cached

( git diffPlain hanya akan menampilkan perubahan yang tidak dipentaskan.)

Sebagai contoh: Contoh penggunaan cache git berbeda


0

Bagi saya, satu-satunya hal yang berhasil adalah

git diff HEAD

termasuk file yang dipentaskan, git diff --cachedhanya menampilkan file yang dipentaskan.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.