Apakah ada cara untuk melihat apa yang akan didorong jika saya melakukan git push
perintah?
Apa yang saya gambar adalah sesuatu seperti tab "File Berubah" dari fitur "tarik permintaan" Github. Ketika saya mengeluarkan permintaan tarik, saya bisa melihat dan melihat apa yang akan ditarik jika mereka menerima permintaan tarik saya:
Baris perintah OK, tapi saya lebih suka semacam GUI (seperti screenshot di atas).
Jawaban:
Untuk mendorong daftar file, jalankan:
contoh:
Untuk perbedaan kode file yang akan didorong, jalankan:
Untuk melihat path file lengkap dari file yang akan berubah, jalankan:
Jika Anda ingin melihat perbedaan ini dalam GUI, Anda perlu mengkonfigurasi git untuk itu. Lihat Bagaimana cara melihat output 'git diff' dengan program visual diff? .
sumber
HEAD
, bukan indeks, terhadap sumber (git diff origin/master HEAD
). Difing indeks akan memberikan hasil yang sama jika dan hanya jika Anda tidak memiliki perubahan yang dilakukan untuk komit. Jika Anda memiliki perubahan yang dipentaskan, mereka akan dimasukkan ke dalam diff, tetapi jelas tidak akan didorong karena belum dilakukan.git diff --stat origin/master HEAD
adalah jawaban yang benar.git diff --cached [remote/branch]
melakukan trik :)Selalu ada dry-run:
Ini akan melakukan segalanya kecuali pengiriman data yang sebenarnya.
Jika Anda ingin tampilan yang lebih grafis, Anda memiliki banyak opsi.
Tig dan skrip gitk yang menyertai git keduanya menampilkan cabang saat ini dari salinan lokal Anda dan cabang dari remote atau asal.
Jadi, setiap komit yang Anda buat setelah asal adalah komit yang akan didorong.
Buka gitk dari shell saat berada di cabang yang ingin Anda tekan dengan mengetik
gitk&
, lalu untuk melihat perbedaan antara apa yang ada di remote dan apa yang akan Anda push ke remote, pilih komit yang tidak dicuri lokal Anda dan klik kanan pada remote dan pilih "Diff this -> terpilih":sumber
git diff --stat HEAD origin/master
ataugit diff HEAD origin/master
. Penting adalah KEPALA , jika tidak, Anda memasukkan perubahan yang tidak dikomit dalam diff Andagit push --dry-run
adalah masih membutuhkan izin tulis dari jarak jauh. Jadi, jika Anda memiliki klon tanpa izin untuk mendorong ke atas, tetapi Anda ingin melihat apa perubahan lokal yang tidak disucikan,--dry-run
tidak akan melakukannya.branch
danorigin/branch
, saya akan pergi dengan jawaban Ionuț G. Stan, karena sebenarnya tidak memerlukan koneksi ke repo jarak jauh. Ini bisa baik atau buruk, tergantung apa yang Anda butuhkan.Untuk sekadar daftar komit yang menunggu untuk didorong: ( ini yang akan Anda ingat )
sumber
git cherry -v heroku/remote
jika Anda menyimpan kode Anda di lebih dari satu remote.Anda mungkin ingin lari
git difftool origin/master...
. yang harus memperlihatkan diff terpadu dari apa yang ada di cabang Anda saat ini yang belum di cabang asal / master dan menampilkannya di alat grafis diff pilihan Anda. Agar paling mutakhir, jalankangit fetch
terlebih dahulu.sumber
git difftool -d origin/master
, Saya punya set difftool saya untuk berbaur sehingga berfungsi dengan baik, thx!git difftool -d
jauh lebih baik, terima kasih Aquarius Power. Satu-satunya masalah adalah ia tidak mendeteksi file yang dipindahkan dan menunjukkannya sebagai dihapus dan ditambahkan sebagai gantinya.Salah satu cara untuk membandingkan versi lokal Anda sebelum mendorongnya pada repo jarak jauh (semacam push-run):
Gunakan TortoiseGit:
Klik kanan pada proyek folder root> TortoiseGit> Diff dengan versi sebelumnya>
untuk Versi 2 pilih
refs/remotes/origin/master
sumber
Coba
git diff origin/master..master
(dengan asumsi ituorigin/master
adalah hulu Anda). Tidak sepertigit push --dry-run
ini, ini masih berfungsi bahkan jika Anda tidak memiliki izin menulis ke hulu.sumber
Gunakan
git gui
, di sana Anda dapat melihat daftar apa yang berubah dalam komit aktual Anda. Anda juga dapat menggunakangitk
yang menyediakan antarmuka yang mudah untuk reflog. Bandingkan saja antararemotes/...
danmaster
untuk melihat, apa yang akan didorong. Ini menyediakan antarmuka yang mirip dengan tangkapan layar Anda.Kedua program termasuk dalam git.
sumber
gitk --all
Anda mendapatkan daftar lengkap dari semua komentar. Sekarang Anda dapat membandingkan kondisi aktual dari cabang-dev Anda dengan remote yang Anda dorong.Untuk melihat file mana yang diubah dan melihat perubahan kode aktual dibandingkan dengan
master
cabang yang dapat Anda gunakan:CATATAN : Jika Anda menggunakan salah satu dari Intellij IDEs maka Anda dapat mengklik kanan proyek tingkat atas Anda, pilih Git > Bandingkan dengan cabang > dan pilih asal yang Anda inginkan misalnya
origin/master
. Dalam bagan file yang akan muncul Anda dapat mengklik dua kali file untuk melihat perbedaan visual. Berbeda dengan opsi baris perintah di atas, Anda dapat mengedit versi lokal dari jendela berbeda.sumber
Anda dapat membuat daftar komitmen dengan:
Dan kemudian bandingkan dengan perintah berikut di mana jumlah ^ sama dengan jumlah komit (dalam contoh 2 komitnya):
sumber
Jika Anda menggunakan Mac OS X, saya sarankan Anda mendapatkan Tower, ini adalah program luar biasa yang telah membuat berurusan dengan Git menjadi kesenangan bagi saya. Saya sekarang lagi harus mengingat perintah terminal dan ia menawarkan GUI yang bagus untuk melihat, melacak, dan menyelesaikan perbedaan dalam file.
Dan tidak, saya tidak berafiliasi dengan mereka, saya hanya menggunakan perangkat lunak mereka dan sangat menyukainya.
http://www.git-tower.com/
sumber
Hanya untuk menambahkan dua sen saya ... Saya ingin menerapkan ini ketika menjalankan pekerjaan dalam pipa gitlab pada pelari gitlab. Cara terbaik untuk melakukan ini adalah dengan menggunakan skrip ini:
Juga dalam kasus saya, saya ingin memfilter file dengan ekstensi, untuk mencapai ini saya menggunakan:
Setelah itu Anda dapat misalnya meneruskan daftar ini di tempat lain, linter mungkin;)
Semoga ini bisa membantu seseorang.
sumber
sumber
Setelah itu
git commit -m "{your commit message}"
, Anda akan mendapatkan hash komit sebelum push. Jadi, Anda dapat melihat apa yang akan Anda tekan dengangit
menjalankan perintah berikut:misalnya:
git diff origin/master c0e06d2
sumber