git - perbedaan perubahan saat ini sebelum melakukan

106

Saya telah mengubah beberapa file di repositori git, tetapi belum mengkomitnya.

Saya bisa mendapatkan daftar perubahan hanya dengan memanggil git status. Tapi bagaimana cara mendapatkan daftar baris atau konten yang telah saya ubah, selain nama file?

Saya awalnya berpikir untuk menggunakan git diff , tetapi tampaknya hanya berguna untuk membandingkan perubahan yang sudah dikomit.

Biasanya saya hanya melakukannya meld ., tetapi dalam hal ini saya terhubung ke server eksternal melalui ssh.

kikito
sumber

Jawaban:

153

git diffsecara default menunjukkan perbedaan antara direktori kerja Anda dan indeks ( area pementasan untuk komit berikutnya).

Jika Anda telah menambahkan ( tahapan ) perubahan ke area tahapan , git diff --stagedlakukan pekerjaan itu. Area pementasan adalah data dari mana komit berikutnya akan dibentuk git commit.

PS Bacaan yang baik (IMO) untuk pemula Git:

Mischa Arefiev
sumber
Bukankah bertahap hanya berlaku untuk file yang belum ditambahkan? Pikir Anda harus menggunakan bendera cache.
pbond
4
@peterbond man git-diffmengatakan--staged is a synonym of --cached
Mischa Arefiev
2
@peterbond Secara teknis staged berarti ditambahkan ke area staging yang belum menjadi commit. Saya telah mengklarifikasi hal itu di edit.
Mischa Arefiev
1
@Mischa Dokumentasi mengatakan bahwa perilaku default untuk git diffadalah menghitung perbedaan antara direktori kerja dan indeks , bukanHEAD
Axel
Tidak terpikir oleh saya untuk menjalankan git diff tanpa params. Terima kasih!
kikito
10

Apa yang saya gunakan untuk kasus seperti itu adalah:

git diff HEAD *

Ini akan menunjukkan perubahan sejak komit terakhir. Meskipun entah bagaimana itu bekerja lebih cepat dengan

git diff .

atau

git diff

Untuk melihat perubahan pada git addfile yang diedit sebelumnya , gunakan stagedbendera:

git diff --staged
EliuX
sumber