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.
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.
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 cabanggit checkout cool-new-feature
untuk mulai bekerja di cabang
Dua cabang kini menunjuk ke penerapan yang sama. Misalkan ada beberapa perubahan pada cabang cool-new-feature
dalam dua penerapan baru, E dan F.
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
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.
Langkah berikutnya
Pelajari selengkapnya tentang bekerja dengan riwayat Git di Penyederhanaan riwayat log GitHub dan Azure Repos atau Git.