Saya ingin menggabungkan dua cabang yang telah dipisahkan untuk sementara waktu dan ingin tahu file mana yang telah dimodifikasi.
Datang di tautan ini: http://linux.yyz.us/git-howto.html yang sangat berguna.
Alat untuk membandingkan cabang yang saya temui adalah:
git diff master..branch
git log master..branch
git shortlog master..branch
Bertanya-tanya apakah ada sesuatu seperti "git status master..branch" untuk hanya melihat file-file yang berbeda antara dua cabang.
Tanpa membuat alat baru, saya pikir ini adalah yang terdekat yang bisa Anda lakukan sekarang (yang tentu saja akan menunjukkan pengulangan jika file diubah lebih dari sekali):
git diff master..branch | grep "^diff"
Bertanya-tanya apakah ada sesuatu yang saya lewatkan ...
git
branch
git-branch
git-diff
Johannix
sumber
sumber
Jawaban:
Untuk membandingkan cabang saat ini dengan
master
cabang:Untuk membandingkan dua cabang:
Baca terus
git diff
di dokumentasi resmi .sumber
git diff --name-status your_branch...master
menampilkan perubahan yang terjadi pada master sejak your_branch dibuat darinyaMencoba
Ini akan memberi Anda lebih banyak info tentang setiap perubahan, sementara masih menggunakan jumlah baris yang sama.
Anda juga dapat membalik cabang untuk mendapatkan gambar perbedaan yang lebih jelas jika Anda menggabungkannya dengan cara lain:
sumber
config --global color.ui true
), Anda dapat melewati --color. (Saya memiliki lks - lazy keyboard syndrome.)git config --global color.ui true
- untuk menjadi lengkap.fatal: ambiguous argument 'master..branchName': unknown revision or path not in the working tree.
Juga perlu diingat bahwa git memiliki percabangan yang murah dan mudah. Jika saya pikir penggabungan bisa bermasalah saya membuat cabang untuk penggabungan. Jadi jika
master
ada perubahan yang ingin saya gabungkan danba
adalah cabang saya yang membutuhkan kode dari master saya dapat melakukan hal berikut:Hasil akhirnya adalah saya harus mencoba penggabungan pada cabang yang dibuang sebelum mengacaukan cabang saya. Jika saya membuat diri saya kusut, saya bisa menghapus
ba-merge
cabang dan memulai kembali.sumber
master
saat Anda sedang bekerja meninjau kode dan memperbaiki konflik.Jika ada yang mencoba membuat file diff dari dua cabang:
sumber
Ada juga metode berbasis GUI.
Anda bisa menggunakan gitk .
Lari:
Klik kanan pada komit cabang dan pilih Tandai komit ini di menu pop-up.
Kemudian akan ada daftar file yang diubah di panel kanan bawah dan detail diff di panel kiri bawah.
sumber
Satu lagi opsi, menggunakan berbaur dalam hal ini:
Ini memungkinkan tidak hanya untuk melihat perbedaan antara file, tetapi juga menyediakan cara mudah untuk mengarahkan dan mengklik ke file tertentu.
sumber
-d
pilihannya?Perhatikan bahwa git membuatnya mudah untuk mencoba penggabungan dan mundur dari masalah jika Anda tidak menyukai hasilnya. Mungkin lebih mudah daripada mencari masalah potensial sebelumnya.
sumber
Dan jika Anda mencari perubahan hanya di antara file-file tertentu, maka:
branch1 adalah opsional dan cabang Anda saat ini (cabang tempat Anda berada) akan dianggap default jika branch1 tidak disediakan. misalnya:
sumber
Ketika bekerja secara kolaboratif, atau pada beberapa fitur sekaligus, sudah umum bahwa upstream atau bahkan master Anda berisi pekerjaan yang tidak termasuk dalam cabang Anda, dan akan muncul secara tidak benar di diff dasar.
Jika Hulu Anda mungkin telah pindah, Anda harus melakukan ini:
Hanya menggunakan git diff master dapat memasukkan, atau gagal memasukkan, perubahan yang relevan.
sumber
Jika Anda menggunakan IntelliJ IDEA , Anda juga dapat membandingkan cabang apa pun dengan cabang kerja Anda saat ini. Lihat http://www.jetbrains.com/idea/webhelp/merging-deleting-and-comparing-branches.html#d288093e3827 untuk info lebih lanjut. Ini tersedia dalam edisi gratis juga.
sumber
Ada dua cabang katakanlah
Berada di cabang A Anda bisa mengetik
maka ini akan memberi Anda output
Poin penting tentang ini adalah
Teks berwarna hijau ada di dalam hadir di Cabang A
Teks berwarna merah ada di Cabang B
sumber
Ada banyak jawaban di sini, tetapi saya ingin menambahkan sesuatu yang biasa saya gunakan. JIKA Anda berada di salah satu cabang yang ingin Anda bandingkan, saya biasanya melakukan salah satu dari yang berikut ini. Demi jawaban ini kami akan mengatakan bahwa kami berada di cabang sekunder kami. Tergantung pada tampilan apa yang Anda butuhkan pada saat itu akan tergantung pada yang Anda pilih, tetapi sebagian besar waktu saya menggunakan opsi kedua dari keduanya. Opsi pertama mungkin berguna jika Anda mencoba untuk kembali ke salinan asli - baik, keduanya menyelesaikan pekerjaan!
Ini akan membandingkan master dengan cabang tempat kita berada (yang sekunder) dan kode asli akan menjadi baris yang ditambahkan dan kode baru akan dianggap sebagai baris yang dihapus
ATAU
Ini juga akan membandingkan master dengan cabang tempat kita berada (yang sekunder) dan kode asli akan menjadi baris lama dan kode baru akan menjadi baris baru
sumber
Jika Anda menggunakan Github / Github Enterprise, Anda dapat menggunakan UI Web dengan menekan url
/compare
jalur repositori Anda, misalnya, https://github.com/http4s/http4s/compare . Anda dapat memilih cabang / komit / tag yang ingin Anda bandingkan:Dan diff akan ditampilkan dalam antarmuka github di url di
/compare/{x1}...{x2}
manax2
danx1
merupakan cabang / komit / tag yang ingin Anda bandingkan, misalnya: https://github.com/http4s/http4s/hompp4s/compare/release-0.18.x ...menguasaiAnda dapat melihat lebih banyak di Github Doc .
sumber
Bagi orang yang mencari solusi GUI, Git Cola memiliki "Branch Diff Viewer" yang sangat bagus ( Diff -> Branches .. ).
sumber
jika
revision_n
danrevision_m
berturut-turut komit maka hasilnya sama dengangit show revision_m
sumber
Anda juga dapat menggunakan diff visual .
Misalnya, jika Anda menggunakan Sourcetree , Anda cukup memilih dua komit dalam tampilan log .
(Saya pribadi lebih suka menggunakan GUI dalam banyak kasus untuk ini, dan saya memposting ini untuk mereka yang mungkin tidak terbiasa dengan opsi GUI.)
sumber
Jika Anda menyukai GUI dan menggunakan Windows, berikut adalah cara mudah.
sumber
Anda juga dapat dengan mudah membandingkan cabang untuk file yang diubah menggunakan misalnya TortoiseGit . Cukup klik Browse Referensi dan pilih cabang yang ingin Anda bandingkan.
Sebagai contoh jika Anda membandingkan cabang Anda dengan master, Anda akan mendapatkan daftar file yang akan diubah di master jika Anda memutuskan untuk menggabungkan cabang Anda menjadi master .
Ingat bahwa Anda akan memiliki hasil yang berbeda jika Anda membandingkan master dengan cabang Anda dan cabang Anda dengan master .
sumber