Saya tahu bahwa saya dapat melihat perbedaan antara KEPALA dan kondisi saat ini meld .
. Tetapi bagaimana saya bisa melihat perbedaan antara cabang, misalnya master
dan devel
dengan berbaur?
Saat ini saya melakukan langkah-langkah berikut:
- Ganti nama folder dari copy pekerjaan
misalnyamv /projectA /projectA_master
) - Kloning proyek lagi
git clone url
- Beralih ke
devel
cabang
cd projectA && git -b devel origin/devel
- Lihat perbedaan dengan berbaur
meld /projectA_Master projectA
Apakah tidak ada cara yang lebih mudah untuk mendapatkan hasil yang sama dalam berbaur? Saya hanya perlu meninjau perubahan dan bukan terutama untuk menggabungkan.
Jawaban:
Saya juga menemukan masalah ini mengganggu jadi saya telah membuat git berbaur yang memungkinkan cara yang lebih nyaman untuk melakukan komitmen sewenang-wenang terhadap pohon kerja atau area pementasan. Anda dapat menemukannya di https://github.com/wmanley/git-meld . Agak mirip dengan skrip Mark, tetapi berfungsi untuk membandingkan komit sembarang atau area pementasan atau direktori kerja dengan yang lain. Jika salah satu hal yang Anda bandingkan adalah pohon kerja maka itu baca-tulis juga sehingga Anda tidak kehilangan perubahan Anda.
sumber
Pendek & manis:
Ini mengkonfigurasi Git untuk digunakan
meld
sebagai alat diff. (Anda tidak perlu menentukan argumen baris perintah, dukungan untukmeld
dibangun ke Git.)Kemudian, jika Anda menginginkan diff grafis daripada yang tekstual, Anda cukup memanggil
git difftool
bukangit diff
(keduanya mengambil argumen yang sama). Dalam kasus Anda:Update: Jika Anda tidak ingin diff satu-file-di-a-waktu, melainkan ingin menggunakan berbaur ini "subdirektori" tampilan dengan semua perubahan antara dua cabang, perhatikan
-d
atau--dir-diff
pilihan untukgit difftool
. Misalnya, ketika saya berada di cabang XYZ dan saya ingin melihat apa yang berbeda antara ini dan cabang ABC, saya menjalankan ini:sumber
Dimulai dengan git v1.7.11, Anda dapat menggunakan
git difftool --dir-diff
untuk melakukan diff direktori. Yang bekerja cukup baik dengan skrip berbaur tanpa https://github.com/wmanley/git-meld skrip.Konfigurasikan git
Gunakan
Untuk macOS
sumber
Ctrl+s
- bagian yang tepat, file Anda dimodifikasi.Penting untuk mengatakan bahwa menggunakan
git difftool -d
Anda masih dapat mengedit file yang berfungsi di Meld dan menyimpannya . Untuk mencapai itu, Anda perlu membandingkan beberapa cabang dengan pohon kerja Anda saat ini, misalnya:Meld akan menunjukkan bahwa direktori kiri dan kanan berada di / tmp. Namun, file di direktori yang benar sebenarnya adalah tautan simbolis ke file Anda di direktori kerja saat ini (tidak berlaku untuk Windows). Jadi, Anda dapat mengeditnya di Meld dan saat Anda menyimpannya, perubahan Anda akan disimpan di direktori kerja Anda.
Namun pilihan yang lebih menarik adalah perbandingan direktori kerja saat ini dengan simpanan. Anda dapat melakukannya dengan hanya mengetik:
Kemudian Anda dapat mentransfer beberapa perubahan dari simpanan (jendela kiri) ke copy pekerjaan Anda saat ini (jendela kanan), tanpa menggunakan
git stash pop/apply
dan menghindari resolusi konflik yang mengganggu yang mungkin disebabkan oleh perintah ini.Saya pikir itu secara signifikan dapat meningkatkan alur kerja dengan simpanan. Anda dapat secara bertahap mentransfer perubahan dari simpanan ke copy pekerjaan dan komit satu per satu, memperkenalkan beberapa perubahan lain jika Anda mau.
sumber
Walaupun tampaknya dari jawaban lain seolah-olah tidak ada cara untuk melakukan ini secara langsung di repositori git saat ini, mudah (terima kasih atas jawaban untuk pertanyaan lain :)) untuk menulis skrip yang akan mengekstrak pohon dua komitmen. ke direktori sementara dan jalankan berbaur dengannya, hapus kedua direktori saat berbaur keluar:
http://gist.github.com/498628
Tentu saja, Anda akan kehilangan perubahan yang dibuat melalui berbaur, tapi itu cukup bagus untuk tinjauan singkat perbedaannya, saya pikir.
sumber
Saya pikir cara mudah untuk melakukan ini adalah menggunakan
git reset --soft
:Sasaran: membandingkan perbedaan antara branch_a dan branch_b dengan berbaur
sumber
Di git V1.7.9 Anda dapat membandingkan dua commit tanpa commandline:
Anda harus mengonfigurasi dalam opsi edit 'git gui', global: "Gunakan alat gabungan: meld".
Mulai gitk , pilih komit, klik kanan komit lain> " beda ini -> dipilih ". Di bawah 'patch' klik kanan file> " diff eksternal ".
berbaur akan mulai dan menampilkan yang masih dipilih, komit pertama di sisi kanan.
sumber
Untuk Meld di macOS, tambahkan ini ke Anda
~/.gitconfig
seperti yang direkomendasikan oleh pengelola aplikasi macOS, yousseb :Anda dapat menghilangkan
merge
konfigurasi jika Anda mau.@ Jawaban GutenYe tidak berhasil untuk saya karena melarikan diri secara otomatis dan / atau sesuatu dengan
zsh
.sumber