Saya kira ini adalah kesalahan konfigurasi di suatu tempat, tetapi saya tidak tahu di mana. Perintah git biasa tampaknya berfungsi dengan baik, tetapi "git diff" tidak melakukan apa-apa. Untuk amannya, saya menghapus alat diff eksternal dari file .gitconfig saya. Ini diinstal melalui MacPorts dan merupakan versi terbaru (1.7.2.2).
Apa yang saya lihat adalah ketika saya menjalankan "git diff" dari ruang kerja saya, ia keluar begitu saja, tidak melakukan apa-apa.
$ git --version
git version 1.7.2.2
$ git diff
$
Jika saya mencadangkan satu direktori, dari ruang kerja root saya, mengetik "git diff" memberi saya ini:
$ git diff
usage: git diff [--no-index] <path> <path>
Ini mungkin perilaku yang diharapkan karena saya tidak menggunakan repositori git.
Ada ide tentang apa yang dapat saya lakukan untuk memecahkan masalah ini?
git diff
luar repo akan segera lebih jelas. Lihat jawaban saya di bawahJawaban:
Keluaran default untuk
git diff
adalah daftar perubahan yang belum dilakukan / ditambahkan ke indeks. Jika tidak ada perubahan, maka tidak ada keluaran.Lihat dokumentasi untuk lebih jelasnya. Secara khusus, gulir ke bawah ke contoh, dan baca bagian ini:
Di luar ruang kerja Anda, seperti yang Anda tebak, git tidak akan tahu apa yang harus di-diff, jadi Anda harus secara eksplisit menentukan dua jalur untuk dibandingkan, oleh karena itu pesan penggunaan.
sumber
Catatan: mulai git 1.8.5 atau 1.9, Q4 2013 :
Lihat:
git diff --no-index
dapat bertindak seperti biasa (non-git)diff
.sumber
Itu tidak melakukan apa-apa jika direktori kerja Anda bersih dan tidak ada perbedaan dari pembaruan terakhir. Coba edit sebuah file dan jalankan git diff lagi, dan itu akan menunjukkan perbedaannya.
sumber
Jika Anda menggunakannya di luar repositori atau salinan kerja yang sebenarnya, perilakunya identik dengan GNU diff. Jadi Anda perlu menginformasikan 2 direktori atau file yang akan dibandingkan. Contoh:
git diff old_dir new_dir
.Jika ada perbedaan di antara keduanya, output akan menunjukkan kepada Anda, seperti yang diharapkan.
sumber
Tidak dalam kasus Anda, tetapi mungkin karena file yang Anda berikan tidak ada
tidak ada yang terjadi
sumber