Setelah tarikan Git, outputnya memberikan ringkasan tentang jumlah perubahan.
Bagaimana saya bisa melihat masing-masing atau beberapa file perubahan rinci?
Oke, ini pertanyaan saya untuk Jefromi:
Bagaimana saya tahu jika saya tertarik untuk menguasai? Yang saya lakukan adalah "git pull".
Apa yang ditunjuk oleh master dan apa perbedaan antara master dan HEAD, dua kepala default Git?
Bagaimana cara melihat perubahan terperinci dalam file tertentu?
Bagaimana saya melihat perubahan pada output ringkasan oleh yang terakhir
git pull
lagi?Apa perbedaan antara
git diff
dangit whatchanged
?
git diff
dengan jelas menampilkan diff, sementaragit whatchanged
dengan jelas menampilkan daftar informasi komit, masing-masing berisi daftar file apa yang diubah.Jawaban:
Misalkan Anda tertarik untuk menguasai. Anda dapat merujuk ke posisi sebelumnya
master
denganmaster@{1}
(atau bahkanmaster@{10.minutes.ago}
; lihat bagian revisi yang ditentukan pada halaman manual git-rev-parse ), sehingga Anda dapat melakukan hal-hal sepertiLihat semua perubahan:
git diff master@{1} master
Lihat perubahan pada file yang diberikan:
git diff master@{1} master <file>
Lihat semua perubahan dalam direktori yang diberikan:
git diff master@{1} master <dir>
Lihat ringkasan perubahan lagi:
git diff --stat master@{1} master
Adapun pertanyaan Anda tentang "bagaimana saya tahu jika saya menguasai" ... yah, menggunakan cabang adalah bagian penting dari alur kerja Git. Anda harus selalu waspada dengan cabang apa yang Anda tuju - jika Anda menarik perubahan, Anda ingin menariknya ke cabang yang tepat! Anda dapat melihat daftar semua cabang, dengan tanda bintang oleh yang saat ini check-out, dengan perintah
git branch
. Nama cabang saat ini juga dicetak bersama dengan output darigit status
. Saya sangat merekomendasikan membaca halaman manual dari perintah untuk digunakan - ini adalah cara yang bagus untuk secara perlahan mengambil beberapa pengetahuan.Dan pertanyaan terakhir Anda:
HEAD
adalah nama untuk cabang yang saat ini check out. Anda memang dapat menggunakanHEAD
danHEAD@{1}
dalam konteks ini juga, tetapi sedikit lebih kuat untuk menggunakan cabang, karena jika Anda pergi dan memeriksa cabang lain.HEAD
sekarang cabang kedua, danHEAD@{1}
sekarangmaster
- bukan apa yang Anda inginkan!Untuk menghemat karena harus mengajukan banyak pertanyaan kecil seperti ini, Anda mungkin harus melihat tutorial Git. Ada jutaan di web, misalnya:
sumber
git diff master@{1} master
sebaliknyagit diff master@{1} master
tidak bekerja untuk saya melainkangit diff master~1 master
melakukan pekerjaan untuk saya.git reflog master
pahami apa.fatal: ambiguous argument 'firstDesign@': unknown revision or path not in the working tree.
saya terus mendapatkan kesalahan ini. Meskipun git reflog firstDesign memiliki output ini .Katakanlah Anda melakukan git pull seperti ini:
Anda dapat melihat perbedaan dari apa yang diubah dengan menggunakan angka revisi:
sumber
git diff --stat a407564..9f52bed
" atau hanya ringkasan "git diff --summary a407564..9f52bed
"Perintah itu sendiri berfungsi seperti ini:
dan per default mengacu pada cabang saat ini. Anda dapat memeriksa cabang Anda dengan menggunakan
Ini akan mencantumkan cabang lokal dan jarak jauh Anda seperti misalnya (ditambahkan
---
sebagai pembagi antara lokal dan jarak jauh untuk membuatnya lebih jelas)Saat Anda melihat satu repo jarak jauh, Anda akan melihat apa yang Anda maksudkan:
akan daftar seperti berikut:
Jadi cukup mudah untuk memastikan dari mana menarik dan mendorong.
Cara termudah dan paling elegan (imo) adalah:
Ini akan memberi Anda dua blok informasi tentang perubahan di antara tarikan terakhir Anda dan kondisi kerja saat ini. Contoh output (saya menambahkan
---
pembagi antara--stat
dan--dirstat
keluaran untuk membuatnya lebih jelas):sumber
Ini jenis peretasan, tetapi ini memungkinkan Anda untuk menggunakan alat grafis seperti
gitk
ataugitg
ataugit-gui
:Jawaban dengan paling upvotes memberikan cara terbaik menggunakan alat git, tapi saya menggunakan metode ini karena saya kemudian dapat menggunakan alat dengan GUI untuk melihat perubahan: P
Saya kemudian akan memiliki langkah ekstra untuk melakukan
git checkout .
dan kemudian melakukangit pull
lagi sehingga saya benar-benar menarik dan menggabungkan, tetapi saya menghargai kemampuan untuk memeriksa perbedaan dalam GUI cukup untuk menangani dua langkah tambahan.sumber