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 jejak ini, yang disebut commit di Git, dapat memiliki beberapa induk, membentuk riwayat yang terlihat seperti grafik daripada garis lurus. Perbedaan sejarah ini sangat penting dan merupakan alasan utama pengguna yang akrab dengan CVCS menemukan Git membingungkan.

Menerapkan dasar-dasar riwayat

Mulailah dengan contoh riwayat sederhana: repo dengan tiga commit linier.

Tiga komit dalam satu baris

Commit A adalah induk dari commit B, dan commit B adalah induk dari commit C. Riwayat ini terlihat sangat mirip dengan CVCS. Panah yang menunjuk ke commit C merupakan cabang. Cabang adalah penunjuk dari commit 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 commit 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 origin Git secara default. Pull ini mengandung satu commit baru dan cabang utama di repositori lokal berpindah ke commit tersebut.

Komit keempat, D, ditambahkan ke baris

Memahami riwayat cabang

Sekarang saatnya untuk membuat perubahan pada kode. Biasanya memiliki beberapa cabang aktif saat mengerjakan berbagai fitur secara paralel. Ini sangat kontras dengan CVCS di mana cabang baru berat dan jarang dibuat. Langkah pertama adalah checkout ke 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 memulai pekerjaan di cabang

cabang cool-new-feature ditambahkan sebagai fitur baru

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

Menambahkan commit pada cabang

Commit dijangkau oleh cabang cool-new-feature karena telah dijadikan bagian dari cabang itu. Sekarang setelah fitur selesai, fitur tersebut perlu digabungkan ke cabang utama. Untuk melakukannya, gunakan perintah berikut:

git merge cool-new-feature main

Menggabungkan cabang

Struktur grafik riwayat menjadi terlihat ketika ada penggabungan. Git membuat komit baru saat cabang digabungkan dengan cabang lain. Ini adalah komit penggabungan. Tidak ada perubahan yang disertakan dalam commit 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 komit dari cabang mereka sendiri ke cabang main pada waktu yang bersamaan.

Log konsol Git grafik

Langkah selanjutnya

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