Tampilkan file mana yang telah berubah di antara kedua versi.

Saya ingin menggabungkan dua cabang, yang dibagi untuk sementara waktu dan ingin tahu file mana yang diubah.

Ikuti tautan ini: http://linux.yyz.us/git-howto.html , yang sangat berguna.

Alat untuk membandingkan cabang yang saya temui adalah sebagai berikut:

  • git diff master..branch
  • git log master..branch
  • git shortlog master..branch

Saya bertanya-tanya apakah ada sesuatu seperti "git status master..branch" untuk melihat hanya file-file yang berbeda antara dua cabang.

Tanpa membuat alat baru, saya pikir ini adalah hal terdekat yang dapat Anda lakukan sekarang (yang, tentu saja, akan menunjukkan pengu>

  • git diff master..branch | grep "^diff"

Saya ingin tahu apakah ada sesuatu yang saya lewatkan ...

1645
05 мая '09 в 3:47 2009-05-05 03:47 johannix bertanya pada 05 Mei 2009 di 3:47 2009-05-05 03:47
@ 14 jawaban

Coba

 $ git diff --name-status master..branchName 

Ini harus melakukan apa yang Anda butuhkan, jika saya mengerti Anda dengan benar.

2010
05 мая '09 в 4:04 2009-05-05 04:04 Balas ke JasonSmith pada 05 Mei 2009 di 4:04 2009-05-05 04:04

Coba

 $ git diff --stat --color master..branchName 

Ini akan memberi Anda lebih banyak informasi tentang setiap perubahan, sementara pada saat yang sama menggunakan jumlah baris yang sama.

Anda juga dapat membalik cabang untuk mendapatkan gagasan perbedaan yang lebih jelas jika Anda harus menggabungkan dengan cara lain:

 $ git diff --stat --color branchName..master 
335
09 февр. Jawaban diberikan oleh Gerry pada 09 Feb. 2011-02-09 22:38 '11 pada 10:38 malam 2011-02-09 22:38

Perlu diingat juga bahwa git memiliki garpu yang murah dan mudah. Jika saya pikir gabungan bisa bermasalah, saya membuat cabang gabungan. Oleh karena itu, jika master memiliki perubahan yang ingin saya gabungkan, dan ba adalah cabang saya, yang memerlukan kode dari wizard, saya bisa melakukan hal berikut:

 git checkout ba git checkout -b ba-merge git merge master .... review new code and fix conflicts.... git commit git checkout ba git merge ba-merge git branch -d ba-merge git merge master 

Hasil akhirnya adalah bahwa saya perlu mencoba penggabungan pada cabang drop sebelum mengacaukan cabang saya. Jika saya berkumpul sendiri, saya cukup menghapus cabang ba-merge dan memulai dari awal lagi.

136
11 окт. Balas diberikan oleh Eric Anderson pada 11 Oktober 2012-10-11 04:22 '12 pada 4:22 2012-10-11 04:22

Jika seseorang mencoba membuat file diff dari dua cabang:

 git diff master..otherbranch > myDiffFile.diff 
36
03 апр. jawaban yang diberikan oleh Paulino III 03 Apr. 2013-04-03 17:01 '13 pada 17:01 2013-04-03 17:01

Ada juga metode yang didasarkan pada antarmuka grafis.

Anda bisa menggunakan gitk .

  • Jalankan:

     $ gitk --all 
  • Klik kanan komit cabang dan pilih Tandai komit ini di menu pop-up.

  • Klik kanan pada fiksasi cabang lain dan pilih Diff this → ditandai latch atau Diff ditandai komit → ini.

Kemudian daftar file yang diubah akan muncul di panel kanan bawah, dan informasi akan ditampilkan di panel kiri bawah.

28
14 июня '13 в 9:01 2013-06-14 09:01 jawabannya diberikan oleh Yantao Xie pada 14 Juni '13 pada 9:01 2013-06-14 09:01

Harap dicatat bahwa git memungkinkan Anda untuk mencoba menggabungkan dan kembali dari masalah apa pun jika Anda tidak menyukai hasilnya. Ini mungkin lebih mudah daripada menemukan masalah potensial sebelumnya.

28
05 мая '09 в 3:59 2009-05-05 03:59 membalas David Plumpton pada 05 Mei 2009 di 3:59 2009-05-05 03:59

Opsi lain menggunakan berbaur dalam hal ini adalah:

 git difftool -d master otherbranch 

Ini tidak hanya memungkinkan Anda untuk melihat perbedaan antara file, tetapi juga menyediakan cara mudah untuk menunjuk dan mengklik pada file tertentu.

24
24 апр. jawabannya diberikan rsilva4 24 April. 2014-04-24 16:23 '14 pada 16:23 2014-04-24 16:23

Ketika bekerja bersama atau menggunakan beberapa fungsi secara bersamaan, biasanya terjadi bahwa naik atau bahkan wizard Anda berisi pekerjaan yang tidak termasuk dalam cabang Anda dan akan ditampilkan secara tidak benar dalam perbedaan dasar.

Jika Hulu Anda mungkin telah pindah, Anda harus melakukan ini:

 git fetch git diff origin/master... 

Cukup menggunakan git, wizard diff mungkin atau mungkin tidak termasuk perubahan yang sesuai.

11
24 марта '15 в 6:21 2015-03-24 06:21 jawabannya diberikan oleh Alex Brown pada 24 Maret '15 di 6:21 2015-03-24 06:21

Jika Anda menggunakan IntelliJ IDEA , Anda juga dapat membandingkan cabang apa pun dengan cabang kerja Anda saat ini. Untuk informasi lebih lanjut, lihat http://www.jetbrains.com/idea/webhelp/merging-deleting-and-comparing-branches.html#d288093e3827 . Ini tersedia dalam versi gratis .

7
06 июня '13 в 10:17 2013-06-06 10:17 jawabannya diberikan oleh Wim Deblauwe pada 06 Juni 2013 pukul 10:17 2013-06-06 10:17

Dan jika Anda mencari perubahan hanya untuk file tertentu, maka:

 git diff branch1 branch2 -- myfile1.js myfile2.js 

branch1 adalah opsional, dan cabang Anda saat ini (cabang tempat Anda berada) akan dianggap default jika branch1 tidak disediakan. misalnya:

 git diff master -- controller/index.js 
7
16 мая '16 в 16:13 2016-05-16 16:13 jawabannya diberikan oleh Mannu pada 16 Mei 16 di 16:13 2016-05-16 16:13

Cukup tambahkan informasi tambahan ke jawaban JasonSmith :

Saya memeriksa utas saya dengan perintah ini:

$ git clone -b branchName http://repository_url

Namun, git diff diusulkan tidak berfungsi:

 $ git diff --name-status master..branchName fatal: ambiguous argument 'master..branchName': unknown revision or path not in the working tree. Use '--' to separate paths from revisions, like this: 'git <command> [<revision>...] -- [<file>...]' 

Saya meneliti cabang-cabang berikut cabang ini :

 $ git branch * branchName $ git branch -a * branchName remotes/origin/HEAD -> origin/master remotes/origin/master remotes/origin/branchName 

Saya tidak memiliki cabang master secara lokal, jadi saya membandingkannya dengan remotes/origin/master :

 $ git diff --name-status remotes/origin/master..push . . . . . . . . . 

remotes/origin/master lebih lanjut tentang remotes/origin/master di utas ini .

2
02 июня '16 в 16:40 2016-06-02 16:40 jawabannya diberikan hanya pria acak 02 Juni '16 pukul 16:40 2016-06-02 16:40

Ada banyak jawaban di sini, tetapi saya ingin menambahkan sesuatu yang biasanya 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 katakan bahwa kami berada di industri sekunder kami. Tergantung pada jenis apa yang Anda butuhkan pada saat itu, itu akan tergantung pada apa yang Anda pilih, tetapi sebagian besar waktu saya menggunakan versi kedua dari keduanya. Opsi pertama dapat berguna jika Anda mencoba untuk kembali ke salinan asli - dalam hal apa pun, keduanya dieksekusi!

Ini akan membandingkan wizard dengan cabang di mana kita (yang sekunder), dan kode sumber akan menjadi baris yang ditambahkan, dan kode baru akan dianggap sebagai baris yang dihapus.

 git diff ..master 

Atau

Ini juga akan membandingkan wizard dengan cabang di mana kita (yang sekunder), dan kode sumber akan menjadi baris lama, dan kode baru akan menjadi baris baru.

 git diff master.. 
1
01 июня '17 в 1:00 2017-06-01 01:00 jawabannya diberikan Jase 01 Juni '17 pada 1:00 2017-06-01 01:00

Ada dua cabang:

  • A (cabang tempat Anda bekerja)
  • B (Utas lain yang ingin Anda bandingkan)

Saat berada di cabang A, Anda bisa masuk

 git diff --color B 

maka itu akan memberi Anda hasilnya

2019

04 окт. jawabannya diberikan oleh selftaught91 04 Oktober. 2016-10-04 14:56 '16 pada 14:56 2016-10-04 14:56

Anda juga dapat dengan mudah membandingkan cabang untuk file yang dimodifikasi menggunakan, misalnya, TortoiseGit . Cukup klik Telusuri tautan dan pilih cabang yang ingin Anda bandingkan.

Misalnya, jika Anda membandingkan cabang Anda dengan master, Anda akan menerima daftar file yang akan diubah di master, jika Anda memutuskan untuk menggabungkan cabang Anda menjadi master.

Ingatlah bahwa Anda akan memiliki hasil yang berbeda jika Anda membandingkan master dengan cabang Anda dan cabang Anda dengan master.

-1
18 окт. Jawaban diberikan oleh Piotr pada 18 Oktober. 2017-10-18 12:53 '17 pada 12:53 2017-10-18 12:53

Pertanyaan lain tentang atau Ajukan Pertanyaan