Pertanyaan Menunjukkan file mana yang telah berubah di antara dua revisi


Saya ingin menggabungkan dua cabang yang telah terpisah untuk sementara dan ingin mengetahui file mana yang telah dimodifikasi.

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

Alat untuk membandingkan cabang yang pernah 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" hanya melihat file-file yang berbeda antara dua cabang.

Tanpa membuat alat baru, saya pikir ini adalah yang paling dekat yang dapat Anda lakukan sekarang (yang tentu saja akan menunjukkan pengulangan jika file dimodifikasi lebih dari satu kali):

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

Bertanya-tanya apakah ada sesuatu yang saya lewatkan ...


1787
2018-05-05 00:47


asal


Jawaban:


Untuk membandingkan cabang saat ini melawan master

$ git diff --name-status master

Untuk membandingkan sepasang cabang

$ git diff --name-status firstbranch..yourBranchName

Itu harus melakukan apa yang Anda butuhkan, jika saya memahami Anda dengan benar.


2184
2018-05-05 01:04



Mencoba

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

Ini akan memberi Anda lebih banyak info tentang setiap perubahan, sementara masih menggunakan jumlah baris yang sama.

Anda juga dapat membalik cabang untuk mendapatkan gambaran yang lebih jelas tentang perbedaannya jika Anda menggabungkannya dengan cara lain:

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

354
2018-02-09 19:38



Juga perlu diingat bahwa git memiliki cabang yang murah dan mudah. Jika saya pikir penggabungan bisa menjadi masalah saya membuat cabang untuk penggabungan. Jadi jika master memiliki perubahan yang ingin saya gabungkan dan ba adalah cabang saya yang membutuhkan kode dari master saya mungkin 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 harus mencoba penggabungan pada cabang lemparan sebelum mengacaukan cabang saya. Jika saya mendapatkan diri saya terjerat saya hanya bisa menghapus ba-merge cabang dan mulai dari awal.


145
2017-10-11 01:22



Jika ada yang mencoba menghasilkan file diff dari dua cabang:

git diff master..otherbranch > myDiffFile.diff

44
2018-04-03 14:01



Perhatikan bahwa git mempermudah untuk mencoba penggabungan dan mundur dari masalah jika Anda tidak menyukai hasilnya. Mungkin lebih mudah daripada mencari masalah potensial sebelumnya.


30
2018-05-05 00:59



Ada juga metode berbasis GUI.

Kamu dapat memakai gitk.

  1. Menjalankan:

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

  3. Klik kanan pada komit cabang lain dan pilih Diff ini -> komit ditandai atau Diff ditandai commit -> ini.

Kemudian akan ada daftar file yang diubah di panel bawah kanan dan detail diff di panel bawah kiri.


29
2018-06-14 06:01



Satu opsi lagi, menggunakan meld dalam hal ini:

git difftool -d master otherbranch

Ini memungkinkan tidak hanya untuk melihat perbedaan antar file, tetapi juga menyediakan cara mudah untuk mengarahkan dan mengklik file tertentu.


26
2018-04-24 13:23



Ketika bekerja secara kolaboratif, atau pada beberapa fitur sekaligus, sudah umum bahwa hulu atau bahkan master Anda berisi pekerjaan yang tidak termasuk dalam cabang Anda, dan keliru akan muncul di diff dasar.

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

git fetch
git diff origin/master...

Hanya menggunakan git diff master dapat menyertakan, atau gagal memasukkan, perubahan yang relevan.


14
2018-03-24 03:21



Dan jika Anda mencari perubahan hanya di antara file tertentu (s), maka:

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

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

git diff master -- controller/index.js

10
2018-05-16 13:13