Bagikan melalui


Memahami riwayat Git

Layanan Azure DevOps | Azure DevOps Server 2022 - Azure DevOps Server 2019

Git menyimpan riwayat sebagai grafik rekam jepret — yang disebut penerapan — dari seluruh repositori. Setiap penerapan juga berisi penunjuk ke satu atau beberapa penerapan sebelumnya. Penerapan dapat memiliki beberapa orang tua, membuat riwayat yang terlihat seperti grafik alih-alih garis lurus. Perbedaan sejarah ini sangat penting dan merupakan alasan utama pengguna menemukan Git membingungkan.

Catatan

Jika Anda tidak dapat menemukan perubahan dalam riwayat Git yang Anda ketahui telah Anda buat, pelajari selengkapnya tentang cara kerja penyederhanaan riwayat Git di Git kehilangan perubahan saya: Melihat penyederhanaan riwayat Git.

Menerapkan dasar-dasar riwayat

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

tiga penerapan dalam satu baris

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. Ini dinamai main karena itu adalah nama default untuk cabang utama dalam repositori Git. Cabang adalah penunjuk ke penerapan tertentu, itulah sebabnya percabangan sangat ringan dan mudah di Git.

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

git pull origin main

Salinan ini ("menarik") semua penerapan dari main cabang repositori jarak jauh (dipanggil origin secara default) ke main cabang repositori lokal. Operasi penarikan menyalin satu penerapan baru, dan main cabang di repositori lokal sekarang menunjuk ke penerapan baru ini.

penerapan keempat, D, ditambahkan ke baris

Memahami riwayat cabang

Sekarang saya ingin membuat perubahan pada kode saya. Adalah umum untuk memiliki beberapa cabang aktif di mana Anda 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 diikuti dengan git checkout cool-new-feature mulai bekerja di cabang.

Fitur baru cabang ditambahkan

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

menambahkan dua penerapan baru

Komitmen saya dapat dijangkau oleh cool-new-feature cabang karena saya membuat mereka di cabang itu. Saya sudah selesai dengan fitur saya dan ingin menggabungkannya ke dalam main. Untuk melakukannya, saya akan menggunakan perintah berikut:

git merge cool-feature main

setelah penggabungan

Struktur grafik riwayat menjadi terlihat saat ada penggabungan. Git membuat penerapan baru ketika saya menggabungkan cabang saya ke cabang lain. Ini adalah penerapan penggabungan. Tidak ada perubahan yang disertakan dalam penerapan penggabungan ini karena saya tidak memiliki konflik. Jika saya mengalami konflik, penerapan penggabungan akan menyertakan perubahan yang diperlukan untuk menyelesaikan konflik tersebut.

Sejarah di dunia nyata

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

log konsol grafik git

Sekarang setelah Anda memahami bagaimana cabang dan penggabungan membuat bentuk grafik, ini seharusnya tidak terlalu menakutkan!