Katakanlah saya mengkloning repositori dan mulai memodifikasi file. Saya tahu bahwa jika saya memiliki perubahan lokal yang tidak dikomit, saya dapat melakukan diff sebagai berikut git diff test.txt
dan itu akan menunjukkan kepada saya perbedaan antara KEPALA lokal saat ini dan perubahan yang dimodifikasi, tidak dikomit dalam file. Jika saya mengkomit perubahan itu, saya bisa memperbaikinya terhadap repositori asli dengan menggunakangit diff master origin/master
Tetapi apakah ada cara untuk membedakan perubahan lokal dengan repositori asli di server sebelum melakukan secara lokal? Saya mencoba berbagai permutasi git diff --cached master origin/master
dengan tidak berhasil.
Jawaban:
Mengingat repositori jarak jauh telah di-cache via
git fetch
itu harus memungkinkan untuk membandingkan terhadap komit ini. Coba yang berikut ini:sumber
git diff master origin/master
masih membandingkan dengan versi yang dilakukan (jelas dalam retrospeksi). Tetapi meninggalkan master sekarang membandingkan perubahan lokal terhadap versi yang diambil.origin master
dan di tempat lainorigin/master
. Masih ada pekerjaan yang harus dilakukan, IMHO.git diff origin/master
pengembalianfatal: ambiguous argument 'origin/master': unknown revision or path not in the working tree.
master ada pada asal, misalnya,git fetch origin master
berfungsi dengan baik,Saya tahu ini bukan jawaban untuk pertanyaan yang diajukan, tetapi saya menemukan pertanyaan ini mencari perbedaan file di cabang dan file tidak berkomitmen lokal dan saya pikir saya akan berbagi
Sintaksis:
Contoh:
(Terima kasih Eric Boehs untuk cara tidak harus mengetikkan nama file dua kali)
sumber
commit-ish
dan pemisah usus besar. Dokumen pada git-diff sepertinya tidak menyebutkannya. Saya sudah menggunakannya begitu lama sehingga saya tidak ingat di mana saya pertama kali menemukannya. Mungkin contoh orang lain pada perintah lain dan saya baru saja bereksperimengit-diff
. Saya takut jawaban laincommit-ish
adalah yang terbaik yang bisa saya dapatkan saat ini.git diff master:./ -- README.md
. Dengan begitu Anda tidak perlu mengetikREADME.md
dua kali dan Anda dapat menambahkannya ke alias lebih mudah.git diff master: -- README.md
yang./
menciptakan/dev/null
sumber daripada cabang terpencil. Menggunakan git versi 2.19.0Untuk melihat perubahan yang tidak bertahap (tidak ditambahkan) ke file yang ada
git diff
Perhatikan bahwa ini tidak melacak file baru. Untuk melihat perubahan bertahap, tidak berkomitmen
git diff --cached
sumber
Jika Anda ingin membandingkan file secara visual, Anda dapat menggunakan:
Ini akan memulai aplikasi diff Anda secara otomatis untuk setiap file yang diubah.
PS: Jika Anda tidak mengatur aplikasi diff, Anda dapat melakukannya seperti pada contoh di bawah ini (saya menggunakan Winmerge ):
sumber