Cara membaca grafik git log

95

Di buku komunitas git, tertulis

Hal menarik lainnya yang dapat Anda lakukan adalah memvisualisasikan grafik komit dengan opsi '--graph', seperti:

$ git log --pretty=format:'%h : %s' --graph
* 2d3acf9 : ignore errors from SIGCHLD on trap
*   5e3ee11 : Merge branch 'master' of git://github.com/dustin/grit
|\
| * 420eac9 : Added a method for getting the current branch.
* | 30e367c : timeout code and tests
* | 5a09431 : add timeout protection to grit
* | e1193f8 : support for heads with slashes in them
|/
* d6016bc : require time for xmlschema

Ini akan memberikan representasi ASCII yang cukup bagus dari baris riwayat komit.

Bagaimana cara membaca grafik ini? Apa bedanya 420eac9dengan yang lain?

michael
sumber

Jawaban:

118

Tanda bintang menunjukkan di mana sesuatu dilakukan:

e1193f8, 5a09431dan 30e367cdiikat ke cabang kiri (menghasilkan a |di cabang kanan) sedangkan 420eac9di cabang kanan (menghasilkan a |di cabang kiri). Dan itulah yang 420eac9berbeda dari yang lain: itu satu-satunya komit ke cabang yang benar.

Demi kelengkapan:

  • d6016bc adalah titik percabangan
  • 5e3ee11 adalah komit penggabungan
  • 2d3acf9 adalah komit pertama setelah penggabungan
eckes
sumber
4
Saya punya pertanyaan tentang waktu komit seperti yang ditunjukkan pada grafik. Dalam grafik, '420eac9' ditampilkan di atas '30e367c', '5a09431', dan 'e1193f8'. Apakah itu selalu berarti bahwa '420eac9' dilakukan setelah tiga lainnya, atau apakah yang berkomitmen pada cabang dikelompokkan bersama, dan urutan kemunculannya di seluruh cabang, tidak memiliki korelasi waktu?
Parag
4
@ Parag: komit di cabang dikelompokkan bersama. 420eac9dilakukan setelah komit pertama dari e1193f8cabang tetapi tidak perlu setelahnya30e367c
eckes
1
@eckes jadi apakah |simbol di kiri (paling kiri) merupakan representasi dari cabang tempat saya saat ini?
J86
@ J86 jika Anda beralih ke cabang lain dan menjalankan perintah yang sama, Anda mendapatkan keluaran yang sama, jadi tidak ada referensi dalam grafik ke cabang Anda saat ini
onofricamila
19

420eac9berada di cabang yang berbeda dari 3 komit "di bawah" itu. Cabang-cabangnya menyimpang setelahnya d6016bcdan mereka bergabung 5e3ee11.

Ilkka
sumber
5
Mungkin kata-kata yang lebih baik daripada cabang divergen adalah bahwa cabang kedua dibuat d6016bcdan dikembangkan secara paralel dengan cabang aslinya.
Ilkka