Bagikan melalui


Memahami riwayat Git

Git mewakili riwayat dengan cara yang pada dasarnya berbeda dari sistem kontrol versi terpusat (CVCS) seperti Team Foundation Version Control, Perforce, atau Subversion. Sistem terpusat menyimpan riwayat terpisah untuk setiap file dalam repositori. Git menyimpan riwayat sebagai grafik rekam jepret dari seluruh repositori. Rekam jepret ini, yang disebut penerapan di Git, dapat memiliki beberapa induk, membuat riwayat yang terlihat seperti grafik alih-alih garis lurus. Perbedaan sejarah ini sangat penting dan merupakan alasan utama pengguna terbiasa dengan CVCS menganggap Git membingungkan.

Menerapkan dasar-dasar riwayat

Mulailah dengan contoh riwayat sederhana: repositori dengan tiga penerapan linier.

Three commits in a line

Penerapan A adalah induk dari penerapan B, dan penerapan B adalah induk dari penerapan C. Riwayat ini terlihat sangat mirip dengan CVCS. Panah yang menunjuk ke penerapan C adalah cabang. Cabang adalah penunjuk ke penerapan tertentu, itulah sebabnya percabangan sangat ringan dan mudah di Git.

Perbedaan utama dalam Git dibandingkan dengan CVCS adalah bahwa pengembang memiliki salinan lengkap repositori mereka sendiri. Mereka perlu menjaga repositori lokal mereka tetap sinkron dengan repositori jarak jauh dengan mendapatkan penerapan terbaru dari repositori jarak jauh. Untuk melakukan ini, mereka menarik cabang utama dengan perintah berikut:

git pull origin main

Ini menggabungkan semua perubahan dari cabang utama di repositori jarak jauh, yang dinamai Git origin secara default. Tarikan ini membawa satu penerapan baru dan cabang utama di repositori lokal berpindah ke penerapan itu.

A fourth commit, D, is added to the line

Memahami riwayat cabang

Sekarang saatnya untuk membuat perubahan pada kode. Umum untuk memiliki beberapa cabang aktif saat mengerjakan berbagai fitur secara paralel. Ini sangat kontras dengan CVCS, saat cabang baru berat dan jarang dibuat. Langkah pertama adalah memeriksa cabang baru menggunakan perintah berikut:

git checkout -b cool-new-feature

Ini adalah pintasan yang menggabungkan dua perintah:

  • git branch cool-new-feature untuk membuat cabang
  • git checkout cool-new-feature untuk mulai bekerja di cabang

Branch cool-new-feature is added

Dua cabang kini menunjuk ke penerapan yang sama. Misalkan ada beberapa perubahan pada cabang cool-new-feature dalam dua penerapan baru, E dan F.

Add commits to a branch

Penerapan dapat dijangkau oleh cool-new-feature cabang karena mereka berkomitmen pada cabang itu. Sekarang setelah fitur selesai, fitur tersebut perlu digabungkan ke cabang utama. Untuk melakukannya, gunakan perintah berikut:

git merge cool-new-feature main

Merge a branch

Struktur grafik riwayat menjadi terlihat saat ada penggabungan. Git membuat penerapan baru saat cabang digabungkan ke cabang lain. Ini adalah penerapan penggabungan. Tidak ada perubahan yang termasuk dalam penerapan penggabungan ini karena tidak ada konflik. Jika ada konflik, penerapan penggabungan akan menyertakan perubahan yang diperlukan untuk mengatasinya.

Sejarah di dunia nyata

Berikut adalah contoh riwayat Git yang lebih menyerupai kode dalam pengembangan aktif di tim. Ada tiga orang yang menggabungkan penerapan dari cabang mereka sendiri ke cabang main pada waktu yang relatif sama.

Console log of git graph

Langkah berikutnya

Pelajari selengkapnya tentang bekerja dengan riwayat Git di Penyederhanaan riwayat log GitHub dan Azure Repos atau Git.