Jawaban ini bagus untuk melihat perbedaan visual antara dua file yang diperiksa ke git: Bagaimana cara melihat output 'git diff' dengan program visual diff?
Namun, saya ingin melihat perbedaan visual antara dua cabang. Sejauh ini, taruhan terbaik saya adalah:
git diff --name-status master dev
yang tidak terlalu informatif dan tidak terlalu visual.
Adakah yang lebih baik di luar sana?
Jawaban:
Gunakan
git diff
dengan kisaran .Ini akan membandingkan tips dari masing-masing cabang.
Jika Anda benar-benar menginginkan beberapa perangkat lunak GUI, Anda dapat mencoba sesuatu seperti SourceTree yang mendukung Mac OS X dan Windows.
sumber
Meld
, kemudian mengaturnya sebagai defaultdifftool
dengangit config --global diff.tool meld
dan akhirnya meluncurkannya bukandiff
dengangit difftool branch1..branch2
. Hasilnya terlihat jauh lebih bagus.git difftool -t meld branch1..branch2
Untuk melihat perbedaan visual dari semua perbedaan antara dua cabang, saya ingin menggabungkan dua cabang - TANPA melakukan penggabungan - dan kemudian menggunakan
git gui
atau git Extensions untuk mendapatkan gambaran umum perbedaan.Git command line untuk menggabungkan tanpa melakukan:
Kemudian setelah selesai, Anda dapat membatalkan penggabungan dengan
(h / t ke @ jcugat untuk komentar)
sumber
git gui
dalamnya menunjukkan konflik sebagai tidak dipentaskan, non-konflik sebagai dipentaskan, sehingga Anda mendapatkan perbedaan yang baik bahkan. Membantu saya lebih banyak daripada jawaban peringkat teratas: DJika Anda menggunakan Intellij Idea IDE, Anda bisa menggunakan opsi bandingkan di cabang.
sumber
Anda juga dapat melakukan ini dengan mudah dengan gitk.
Klik pertama pada ujung branch1. Sekarang klik kanan pada ujung branch2 dan pilih Diff this-> terpilih.
sumber
gitk branch1..branch2
hanya menunjukkan komit di antara dua revisi.Bagi Anda di Windows yang menggunakan TortoiseGit, Anda bisa mendapatkan perbandingan visual melalui fitur yang agak tidak jelas ini:
shift
dan klik kananctrl
untuk memilih dua cabang untuk dibandingkanSumber: http://wikgren.fi/compare-diff-branches-in-tortoise-git-atau-atau-bagaimana-untuk-preview-perubahan-sebelum-melakukan-mereka/
sumber
Jika Anda menggunakan OSX atau Windows 7+, Atlassian SourceTree bekerja sangat baik untuk ini. Ini gratis.
Anda dapat melihat perubahan bertahap dalam pengaturan diff berdampingan, dan Anda dapat dengan mudah membandingkan lokal dengan remote dan dua cabang lainnya. Ketika beberapa file dipilih, diff muncul seperti di bawah ini:
Dengan asumsi Anda telah memeriksa cabang fitur dan Anda ingin melihat perbedaan terhadap 'master', klik kanan pada cabang 'master' dan pilih "Diff terhadap arus"
Sayangnya, sepertinya tidak akan tersedia di distribusi * nix dalam waktu dekat .
sumber
Coba "difftool" (dengan asumsi Anda memiliki pengaturan alat diff) - lihat https://www.kernel.org/pub/software/scm/git/docs/git-difftool.html
Saya menemukan status nama baik untuk ringkasan tetapi difftool akan mengulangi perubahan (dan
-d
opsi memberi Anda tampilan direktori), misalnyaAtau seperti yang disebutkan @ rsilva4 dengan
-d
dan default ke cabang Anda saat ini, hanya - mis. Bandingkan dengan master:... dan ya - ada banyak variasi - https://www.kernel.org/pub/software/scm/git/docs/git-reset.html
sumber
git difftool -d their-abc my-abc
-d --dir-diff: Copy the modified files to a temporary location and perform a directory diff on them. This mode never prompts before launching the diff tool.
Jika Anda menggunakan github, Anda dapat menggunakan situs web untuk ini:
github.com/url/to/your/repo/compare/SHA_of_tip_of_one_branch...SHA_of_tip_of_another_branch
Itu akan menunjukkan kepada Anda perbandingan keduanya.
sumber
github.com/url/to/your/repo/compare/
dan kemudian Anda dapat memilih cabangDi GitExtensions Anda dapat memilih kedua cabang di kotak revisi dengan Ctrlmenekan. Kemudian Anda bisa melihat file yang berbeda di antara cabang-cabang itu. Ketika Anda memilih file Anda akan melihat perbedaan untuk itu.
Diambil dari sini
sumber
MEMPERBARUI
Mac: Saya sekarang menggunakan SourceTree. Sangat direkomendasikan. Saya terutama menyukai cara Anda bisa panggung / unstage bakhil.
Linux: Saya sudah sukses dengan:
meld
Misalnya menginstal
smartgit
di Ubuntu:.deb
dari https://www.syntevo.com/smartgit/download/Ini berhasil:
git-diffall dengan alat GUI diff seperti berbaur. Lihat poin 5 di sini:
http://rubyglazed.com/post/15772234418/git-ify-your-command-line
Ada postingan yang bagus tentang git dan berbaur di sini: http://nathanhoad.net/how-to-meld-for-git-diffs-in-ubuntu-hardy
sumber
Jika Anda menggunakan Eclipse, Anda dapat secara visual membandingkan cabang Anda saat ini di ruang kerja dengan tag / cabang lain:
sumber
Anda dapat menggunakan P4Merge gratis dari Perforce untuk melakukan ini juga:
http://www.perforce.com/product/components/perforce-visual-merge-and-diff-tools
Detail tentang mengintegrasikannya dengan Git dapat ditemukan di sini dan di sini
tetapi ringkasan cepat dari tautan di atas adalah:
$ git mergetool
dan$ git difftool
menggunakan p4merge$ git diff
masih hanya akan menggunakan penampil diff inline default :) (diuji dengan git versi 1.8.2)Perubahan untuk .gitconfig
sumber
Jika Anda menggunakan editor WebStorm yang sangat baik, Anda dapat membandingkan dengan cabang apa pun yang Anda inginkan:
sumber
Lihatlah
git show-branch
Ada banyak hal yang dapat Anda lakukan dengan fungsionalitas inti git. Mungkin baik untuk menentukan apa yang ingin Anda sertakan dalam diff visual Anda. Sebagian besar jawaban fokus pada perbedaan komit baris per baris, di mana contoh Anda berfokus pada nama file yang terpengaruh dalam komit yang diberikan.
Satu visual yang tampaknya tidak ditangani adalah bagaimana melihat komit yang berisi cabang (apakah sama atau unik).
Untuk visual ini, saya penggemar
git show-branch
; itu pecah tabel terorganisir dengan baik per cabang kembali ke leluhur bersama. - untuk mencobanya pada repo dengan banyak cabang dengan divergensi, cukup ketikgit show-branch
dan periksa hasilnya - untuk artikel dengan contoh, lihat Membandingkan Komit Antar Cabang Gitsumber
Berikut adalah cara melihat perbedaan visual antara seluruh commit, yang bertentangan dengan file tunggal, di Visual Studio (diuji dalam VS 2017). Sayangnya, ini hanya berfungsi untuk komit dalam satu cabang: Di "Tim Explorer", pilih tampilan "Cabang", klik kanan pada repo, dan pilih "Lihat riwayat" seperti pada gambar berikut.
Kemudian sejarah cabang saat ini muncul di area utama. (Di mana cabang yang berakhir seperti komit sebelumnya pada cabang saat ini ditandai dengan label.) Sekarang pilih beberapa komit dengan Ctrl-Kiri, lalu klik kanan dan pilih "Bandingkan Komit ..." dari menu pop-up.
Untuk lebih lanjut tentang membandingkan cabang di dunia Microsoft, lihat pertanyaan stackoverflow ini: Perbedaan antara cabang git menggunakan Visual Studio .
sumber
Anda juga dapat menggunakan vscode untuk membandingkan cabang menggunakan ekstensi CodeLense, ini sudah dijawab dalam SO ini: Cara membandingkan berbagai cabang pada kode Visual studio
sumber