Jawaban:
Berikut ini berfungsi untuk saya:
git diff master:foo foo
Di masa lalu, itu mungkin:
git diff foo master:foo
--
untuk memisahkan parameter dari argumen jalur? git diff -- master:foo foo
git diff -- master:foo foo
tidak berfungsi - sepertinya memperlakukan arg master:foo
sebagai nama file yang tidak ada (dan mengabaikannya) alih-alih file-in-a-branch. Coba alihkan 2 argumen terakhir - jika berhasil, perbandingan diff harus dibalik, tetapi hasilnya tidak berubah.
git diff master:foo foo
tetapi tidak sebaliknya. Saya juga tidak mengerti. Dengan git 1.7.9.5 / Ubuntu 12.04 setidaknya saya dapat melakukan git diff -R master:foo foo
untuk mendapatkan diff yang sebenarnya saya inginkan. Ketika saya mencobanya dengan msysgit 1.9.4 / Windows 7 x64 saya dapatkan fatal: unable to read 0000000000000000000000000000000000000000
. Tanpa -R
saya mendapatkan pesan kesalahan yang sama seperti Anda dengan git 1.7.9.5, tetapi dengan 1.9.4 saya dapatkan fatal: master:foo: no such path in the working tree
.
Anda mencoba membandingkan pohon kerja Anda dengan nama cabang tertentu, jadi Anda menginginkan ini:
git diff master -- foo
Yang dari bentuk git-diff ini (lihat manual git-diff)
git diff [--options] <commit> [--] [<path>...]
This form is to view the changes you have in your working tree
relative to the named <commit>. You can use HEAD to compare it with
the latest commit, or a branch name to compare with the tip of a
different branch.
FYI, ada juga opsi --cached
(alias --staged
) untuk melihat perbedaan dari apa yang telah Anda buat, daripada semua yang ada di pohon kerja Anda:
git diff [--options] --cached [<commit>] [--] [<path>...]
This form is to view the changes you staged for the next commit
relative to the named <commit>.
...
--staged is a synonym of --cached.
Juga: git diff master..feature foo
Karena git diff foo master:foo
tidak berfungsi pada direktori untuk saya.
git diff branch1:foo master:foo
git difftool tag/branch filename
git difftool
tidak memiliki -v
opsi menurut docs git-scm.com/docs/git-difftool . Apakah maksud Anda -y
?
git diff mybranch master -- file
juga harus bekerja
git diff deployment master -- file
dan git diff master deployment -- file
berfungsi seperti yang diharapkan dengan 2 cabang .
Untuk melihat perubahan lokal dibandingkan dengan cabang Anda saat ini
git diff .
Untuk melihat perubahan lokal dibandingkan dengan cabang lain yang ada
git diff <branch-name> .
Untuk melihat perubahan file tertentu
git diff <branch-name> -- <file-path>
Pastikan Anda berlari git fetch
di awal.
git diff
, saya selalu memikirkan stackoverflow.com/questions/5256249/git-diff-doesnt-show-enough/…