Pertanyaan Panduan untuk memahami gitk? [Tutup]


Saya memperkenalkan git ke tim pengembang dan saya menemukan gitk sebagai alat yang luar biasa. Ini juga cukup sulit dimengerti, karena memahami gitk membutuhkan pemahaman tentang sejarah git dan alat penampil itu sendiri.

Adakah yang punya referensi bagus untuk sesuatu seperti "panduan pemula untuk git sejarah dengan gitk"?


75
2017-10-15 05:59


asal


Jawaban:


Saya belum pernah melihat sesuatu yang khusus untuk gitk. Berikut ini tikamannya, dari sudut pandang "bagaimana cara kerjanya". Mengetahui perintah yang ada di balik semuanya (atau setidaknya secara umum setara) membantu belajar menggunakan alat baris perintah dengan lebih mudah, dan juga menunjukkan kepada Anda di mana harus mencari dokumentasi untuk memahami gitk dengan lebih baik!

Menu file

Ini telah sedikit berubah selama beberapa versi utama terakhir - saya menggambarkan keadaan saat ini.

  • perbarui dan muat ulang: Ini mungkin hal yang paling membingungkan. Muat ulang me-refresh segalanya seolah Anda memulai program dengan konfigurasi yang sama. Ini berarti jika sebuah cabang telah dihapus / di-rebased, jika ada komit yang sekarang menjuntai, Anda tidak melihatnya lagi. Pembaruan, di sisi lain, menyegarkan semua informasi, tetapi masih menampilkan semua commit yang sebelumnya ditampilkan. Ini adalah hal yang sangat baik untuk digunakan jika Anda melakukan rebase dan ingin memastikan Anda tidak mengacaukan - Anda dapat melihat versi asli dan versi yang telah diremajakan.

  • referensi: cukup jelas. Referensi mencakup tag dan cabang (yang mungkin jauh). Anda dapat membaca ulang mereka, dan daftar untuk mengklik yang tertentu untuk menampilkannya dalam sejarah.

Views

Sebagai halaman manual mengatakan, gitk mengambil git-rev-list opsi untuk membantu menentukan sejarah apa yang harus ditampilkan. Ini juga dapat diatur secara interaktif di menu "tampilan". Halaman manual adalah tempat yang sangat baik untuk menemukan informasi lebih lanjut tentang cara Anda dapat mengontrol pandangan (itu sebagian besar di bagian membatasi komitmen). Jika Anda sudah melihat git-log sebelumnya, Anda akan melihat banyak hal ini.

Membantu

Ada daftar keybindings di sini! Manis.

Menu konteks

Ini menyajikan beberapa perintah git porselen umum, umumnya dalam mode operasi umum / default. Mendaftar mereka setidaknya akan membantu Anda menemukan dokumentasi yang tepat untuk memahami apa yang mereka lakukan, jika Anda belum melakukannya!

  • git-diff (Diff ini <-> dipilih
  • git-format-tambalan (buat patch)
  • git-tag (buat tag)
  • git-diff-tree (tulis komit ke file, jarang digunakan)
  • git-cabang
  • git-cherry-pick
  • git-reset (atur ulang cabang ke sini) Ini meminta Anda untuk lunak, campuran, atau keras, dengan pengingat singkat tentang apa yang dilakukan masing-masing. Deskripsi yang lebih panjang pada halaman manual, tetapi tentu saja Anda harus memahami konsep indeks untuk benar-benar mendapatkannya.

"Tandai komit" dan perintah terkait harus cukup jelas pada titik ini.

Dalam menu konteks untuk cabang, kami punya git-checkout dan -d (hapus) mode git-cabang.

Bagian tengah

  • SHA1 ID: hash dari commit saat ini. Sangat berguna untuk menyalin / menempel ke terminal untuk melakukan tindakan pada komitmen yang Anda gunakan untuk menemukan gitk. Anda juga dapat menempelkan hash ke sini.

  • Tombol maju / mundur, nomor baris ... jelas!

  • Menemukan! Pilihan di sini sekali lagi cukup jelas, tetapi untuk pendidikan semua orang, mereka analog dengan git-log parameter: "mengandung" adalah --grep, "menyentuh jalur" adalah argumen, dan menambahkan / menghapus string -S (beliung).

Panel pesan / diff

Di sini kita memiliki pesan komit bersama dengan output git-diff - ini adalah sesuatu seperti menggunakan git-log -p, dengan sedikit tambahan:

  • "Cabang" setara dengan git branch -a --contains=<commit>

  • "Precedes" / "Follows" setara dengan git describe [--contains] <commit> (git-menggambarkan)


90
2017-10-15 07:29



Berikut adalah pengantar visualisasi riwayat cabang di gitk dengan tangkapan layar.

http://lostechies.com/joshuaflanagan/2010/09/03/use-gitk-to-understand-git/

  1. Panel kiri atas menunjukkan serangkaian commit ke repositori ini, dengan yang paling baru di atas.
  2. Ada tiga komit, semuanya oleh Tony Stark.
  3. Pesan commit untuk commit terbaru adalah "commit ketiga"
  4. Ada satu cabang lokal, bernama "master", yang menunjuk pada komitmen terbaru
  5. Ada cabang referensi terpencil tunggal: cabang "master" dari repositori jarak jauh bernama "asal", itu juga menunjuk ke yang paling   komitmen terbaru
  6. Titik kuning di sebelah komit atas menunjukkan itu adalah snapshot yang saat ini ada di folder kerja saya (disebut sebagai HEAD)
  7. Saya telah menyoroti commit kedua, sehingga saya dapat melihat detailnya di panel bawah
  8. SHA komit (identifier unik, mirip dengan nomor revisi subversi) dari commit kedua adalah
      3d024dd9e4a83d8c6a9a143a68b75d4b872115a6
  9. Kanan bawah menunjukkan daftar file yang dipengaruhi oleh commit kedua
  10. Kiri bawah menunjukkan rincian komit, termasuk diff lengkap
  11. Mengeklik file di panel kanan bawah akan menggulir diff di panel kiri bawah ke bagian 12 yang sesuai.

21
2017-07-02 10:52



Apa yang benar-benar bisa digunakan para siswa dalam hal "kombinasi gitk dan sejarah" adalah penjelasan spesifik bagaimana mengenali apa yang terjadi dengan melihat tampilan gitk tree.

Sejauh yang saya punya - cara yang tepat untuk melihat pohon adalah (tentu saja):

 1. each node is a commit
 2. ultimate parent is at the bottom
 3. direct child to a commit is the one that happened first in the same branch (no matter who did it)
 4. the node with 2 or more children indicates ... ?
 5. merge commit node has 2 parents.
 6. rebase is recognized ... ?

Tangkapan layar akan dihargai juga.

Pohon sebenarnya mewakili keadaan repositori saat ini. Apa yang hebat jika kita bisa menceritakan apa yang terjadi dengan melihat tampilan pohon.

Terima kasih

v.


3
2018-02-18 19:36



Satu-satunya hal yang saya anggap berguna tentang antarmuka gitk adalah ikhtisar cabang yang bagus (berwarna-warni) ..

Jika Anda ingin gui untuk git, periksa TortoiseGit di windows atau GitX di Mac atau QGit di linux.


1
2017-10-15 07:32