Apa itu Merge pada GIT
Merge adalah mekanisme yang
digunakan oleh Git untuk mengintegrasikan histori dari suatu cabang (branch) ke
cabang lain. Kita tahu bahwa cabang-cabang dapat dibuat dengan perintah “Git
branch”, dan pada suatu titik, kita mungkin ingin mengambil perubahan dari
cabang satu dan menggabungkannya kembali ke cabang utama (main). Proses
teknisnya adalah menggabungkan cabang yang memiliki komit terbaru ke dalam
cabang utama (main), menciptakan satu sejarah terpadu.
Dalam esensinya, merge berperan
sebagai penggabungan dari serangkaian komit menjadi satu sejarah yang padu. Ini
sering digunakan untuk mengintegrasikan dua cabang yang berbeda menjadi satu
cabang tunggal. Saat dua cabang digabungkan, Git akan membuat satu komit baru
yang mencatat penggabungan kedua cabang tersebut. Selain itu, histori dari
kedua cabang tersebut akan digabungkan menjadi satu jalur tunggal.
Saat kita ingin melakukan merge
atau penggabungan dari sebuah branch, misalnya branch Fitur, kita akan
beralih ke branch Main (branch saat ini). Setiap commit dalam proses
penggabungan memiliki kode uniknya sendiri. Sebagai contoh, Branch Fitur
mungkin memiliki kode F dan Main memiliki kode M. Ketika kita menggabungkan dua
branch, branch tersebut akan menciptakan commit baru karena setiap commit
dianggap sebagai entitas unik oleh branch lainnya. Saat ini, GitHub akan secara
otomatis mengelola proses penggabungan riwayat commit yang terpisah menjadi
satu dalam repositori kita.
Namun, jika saat proses merge
terdapat perbedaan perubahan pada baris kode yang sama dalam file yang sama
dalam kedua riwayat commit dari masing-masing branch, GitHub tidak dapat
melakukan merge secara otomatis. Keadaan ini mengakibatkan gagalnya proses merge,
yang artinya file yang sama dengan perubahan pada baris kode tersebut dalam
kedua branch memerlukan intervensi pengguna untuk menyelesaikan konflik yang
terjadi. Proses yang terjadi saat merge mengalami kegagalan ini disebut sebagai
konflik (conflict).
Konflik muncul ketika dalam satu
repositori, ada dua individu yang mengedit baris yang sama dalam sebuah file
yang identik dan kemudian mencoba menggabungkan cabangnya. Misalnya, saya telah
melakukan perubahan di file bernama hello.txt, dan pada saat yang sama, anggota
tim yang lain juga memodifikasi hello.txt di cabang yang berbeda. Kami telah
masing-masing melakukan commit pada cabang kami, dan saya ingin
mengintegrasikan beberapa perubahan yang telah dilakukan oleh rekan saya.
Namun, ketika saya melakukan merge, prosesnya akan menghadapi konflik.
0 Komentar