Ini sering terjadi pada saya:
Saya sedang mengerjakan beberapa perubahan terkait pada saat yang sama selama satu atau dua hari, dan ketika saatnya untuk melakukan, saya akhirnya lupa apa yang berubah dalam file tertentu. (Ini hanya repo git pribadi, jadi saya setuju dengan memiliki lebih dari satu pembaruan dalam komit.)
Apakah ada cara untuk melihat dulu perubahan antara file lokal saya, yang akan diperiksa, dan komit terakhir untuk file itu?
Sesuatu seperti:
git diff --changed /myfile.txt
Dan itu akan mencetak sesuatu seperti:
line 23
(last commit): var = 2+2
(current): var = myfunction() + 2
line 149
(last commit): return var
(current): return var / 7
Dengan cara ini, saya dapat dengan cepat melihat apa yang telah saya lakukan dalam file itu sejak terakhir kali diperiksa.
git add -p
. Tinjau setiap perubahan, setujui perubahan secara selektif, batalkan kapan saja jika Anda berubah pikiran, dan bahkan sunting sebidang. Saya tidak pernahgit add
tanpanya.q
git config --global diff.noprefix true
.akan menunjukkan kepada Anda perubahan yang Anda tambahkan ke meja kerja Anda dari komit terakhir. Semua perubahan (dipentaskan atau tidak dipentaskan) akan ditampilkan.
sumber
Untuk memeriksa perbedaan lokal:
atau Anda dapat menggunakan alat diff (jika Anda ingin mengembalikan beberapa perubahan):
Untuk menggunakan
git difftool
lebih efisien, instal dan gunakan alat GUI favorit Anda seperti Meld, DiffMerge atau OpenDiff.Catatan: Anda juga dapat menggunakan
.
(bukan nama file) untuk melihat perubahan dir saat ini.Untuk memeriksa perubahan per setiap baris, gunakan:
git blame
yang akan menampilkan baris mana yang dikomit di mana komit.Untuk melihat file aktual sebelum komit (di mana
master
cabang Anda), jalankan:sumber
Sudahkah Anda mencoba
-v
(atau--verbose
) opsigit commit
? Itu menambahkan perbedaan komit di editor pesan.sumber
Changes not staged for commit:
yang dapat membuat editor komit lebih bersih.Teknik lain yang perlu dipertimbangkan jika Anda ingin membandingkan file dengan komit terakhir yang lebih bagus:
Keuntungan dari teknik ini adalah Anda juga dapat membandingkan dengan komit kedua dari belakang dengan:
dan yang sebelumnya:
Anda juga dapat mengganti karakter '~' untuk tanda sisipan '^' dan 'you branch name' untuk 'master' jika Anda tidak berada di cabang master.
sumber
Saya pikir ini adalah kasus penggunaan sempurna yang menjamin GUI. - Meskipun saya benar-benar mengerti bahwa itu juga dapat dicapai dengan cukup baik di dalam baris perintah.
Secara pribadi, setiap komitmen saya, saya lakukan dari git-gui. Di mana saya dapat membuat beberapa atom melakukan komitmen dengan potongan / baris terpisah jika masuk akal untuk melakukannya.
Gut Gui memungkinkan tampilan diff dalam antarmuka berwarna yang diformat dengan baik, agak ringan. Sepertinya ini adalah sesuatu yang harus Anda checkout juga.
sumber
git bisect
yang tidak dapat diakses.tig
"antarmuka mode teks untuk Git".Pada macOS, buka direktori git root dan masukkan
git diff *
sumber
Cara terbaik yang saya temukan, selain menggunakan GUI komit khusus, adalah dengan menggunakan
git difftool -d
- Ini membuka alat Anda dalam mode perbandingan direktori, membandingkan HEAD dengan folder kotor saat ini.sumber
Ini menunjukkan perbandingan menggunakan jendela celah VI di terminal.
sumber