0% menganggap dokumen ini bermanfaat (0 suara)
11 tayangan9 halaman

Proses Merge dan Resolusi Konflik Git

Dokumen tersebut menjelaskan pentingnya fitur cabang (branch) dalam pengelolaan file dengan Git. Branch memungkinkan pemisahan perubahan ke cabang terpisah agar tidak merugikan cabang utama, sehingga perubahan dapat diuji terlebih dahulu sebelum digabungkan kembali ke cabang utama. Dokumen tersebut juga mencontohkan penggunaan branch untuk memisahkan pengembangan fitur baru dan perbaikan bug.

Diunggah oleh

murni arpiani
Hak Cipta
© All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
11 tayangan9 halaman

Proses Merge dan Resolusi Konflik Git

Dokumen tersebut menjelaskan pentingnya fitur cabang (branch) dalam pengelolaan file dengan Git. Branch memungkinkan pemisahan perubahan ke cabang terpisah agar tidak merugikan cabang utama, sehingga perubahan dapat diuji terlebih dahulu sebelum digabungkan kembali ke cabang utama. Dokumen tersebut juga mencontohkan penggunaan branch untuk memisahkan pengembangan fitur baru dan perbaikan bug.

Diunggah oleh

murni arpiani
Hak Cipta
© All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd

Pengantar Git Branches

Pada materi sebelumnya kita sudah menyebutkan tentang Git branch, lalu sebenarnya sepenting apa sih fitur cabang (branch) ini dalam pengelolaan file? Mari kita bayangkan ada suatu aplikasi yang sudah beroperasi di
server production, dan tim developer-nya ingin melakukan suatu update ke aplikasi tersebut. Pertanyaannya, apakah developer bisa langsung melakukan update ke server production? Tentu tidak. Bisa Anda bayangkan
jika pengguna komplain atau bahkan sampai berhenti memakai aplikasi karena sistem ada kemungkinan mengalami bug serius yang disebabkan oleh fitur terbaru yang langsung ditambahkan ke server production.

Pada dasarnya, sebelum melakukan perubahan yang sifatnya kritis (critical), ada baiknya kita melakukannya di environment (lingkungan) yang memang aman. Dalam hal pengembangan aplikasi, server production
bukanlah lingkungan yang digunakan untuk coba-coba atau testing. Nah, karena itulah, para developer salah satunya menggunakan fitur branch untuk mengatasi kondisi ini.

Simpelnya, Git branch (cabang) mampu membuat cabang terpisah baru selain dari cabang utama. Dalam pengembangan aplikasi, umumnya ada cabang production atau bisa sebut sebagai stable version (versi stabil) yang
dinikmati oleh pengguna, kemudian ada cabang baru bernama development yang isi awalnya sama dengan production. Di cabang development inilah perubahan atau fitur baru aplikasi bisa dites terlebih dahulu. Seperti
yang Anda ketahui, update aplikasi pasti rawan dengan adanya bug. Namun, karena sudah dipisahkan dari production, meskipun terjadi bug di cabang development, itu tidak akan merugikan pengguna aplikasi.

Setelah developer yakin bahwa fitur terbarunya itu dapat berjalan dengan baik, maka cabang development akan dilakukan penggabungan (merge) ke cabang production. Proses merge ini berarti semua update terbaru akan
digabungkan ke cabang production dan dapat segera dinikmati oleh pengguna.

Pemakaian Git branch tak hanya untuk pemisahan cabang production dan development saja, kita juga bisa menggunakannya untuk membagi pengerjaan sejumlah fitur oleh beberapa tim. Misalnya, ada 2 fitur yang sedang
dikerjakan oleh tim yang berbeda, nah kita bisa membuat cabang fitur1 dan cabang fitur2. Dengan pemisahan ini, developer yang mengerjakan fitur 1 tidak perlu takut untuk bertabrakan dengan pengerjaan fitur 2.

Apa itu Branch

Branching adalah teknik untuk memisahkan cabang utama ke cabang lain dengan tujuan agar cabang utama tetap bisa dijaga kondisinya. Menjaga kondisi cabang utama agar tetap stabil atau baik sangatlah penting dalam
pengelolaan file karena kita tidak pernah tahu akan ada aktivitas apa kedepannya yang dapat merusak cabang utama. Secara konsep, sebelum melakukan perubahan, kita perlu memiliki pegangan yang bisa kita pakai
sewaktu-waktu untuk kembali ke titik aman ketika terjadi masalah.

Selain sebagai titik aman dalam pengelolaan file, dengan branching, kita juga dapat membagi alur pekerjaan secara terpisah sehingga pekerjaan dapat dilakukan secara paralel tanpa takut terjadinya konflik atau
perubahan yang kita lakukan berpengaruh pada kode di cabang lain. Ini penting karena saat ini kolaborasi paralel dalam suatu tim menjadi strategi ideal dalam pengerjaan suatu proyek.

Untuk memahami cara kerja branch dalam suatu repository, mari kita lihat ilustrasi penggunaan branch dalam suatu pengembangan aplikasi. Pada ilustrasi di bawah terdapat 2 cabang baru, yaitu cabang menambahkan
fitur baru dan cabang memperbaiki bug.

Pada ilustrasi di atas terdapat 3 branch, yaitu:

• Master, yaitu branch (cabang) utama yang seharusnya tidak memiliki bug atau apa pun yang berhubungan dengan kesalahan dalam pengodean/coding. Umumnya, cabang inilah yang dipakai
sebagai production atau versi stabil.

• Fitur baru, yaitu branch untuk menambah fitur baru. Semua commit yang berhubungan dengan fitur baru akan di-push ke branch ini.

• Bug fixing, yaitu branch yang digunakan untuk memperbaiki bug yang terjadi. Cabang bug fixing dibuat terpisah untuk menghindari kesalahan penulisan pada kode perbaikan yang dapat menyebabkan
cabang utama menjadi memiliki lebih banyak bug.

Catatan: pada implementasi Git, ada beberapa macam workflow yang digunakan sebagai praktik terbaik, misalnya di atas ini dijelaskan cabang utama "Master" sebagai cabang dengan versi yang stabil (tidak
memiliki bugs). Tetapi ada juga workflow lain, di mana cabang utama "Master" digunakan sebagai cabang dengan development yang terbaru (bleeding-edge ), sehingga versi stabil akan dibuatkan cabang masing-masing
sesuai versinya [2].

Penggunaan Git branch di atas hanyalah salah satu contoh penggunaan branching, dan tentu ada metode branching berbeda lainnya seperti develop-branch, testing-branch, demo-branch, dan kemudian production-branch.
Pada dasarnya, penggunaan Git branch tergantung dari bagaimana alur pengerjaan yang telah disepakati oleh suatu tim developer.

Latihan Membuat Branch Baru

Tujuan
Latihan Membuat Branch Baru bertujuan untuk mengajarkan Anda bagaimana cara membuat branch baru dalam sebuah repository. Beberapa bagian dari latihan ini akan menjawab berbagai pertanyaan, seperti:

• Apa itu branch?

• Bagaimana cara membuat branch baru dalam sebuah repository?

• Apa yang perlu disiapkan untuk membuat branch baru?

• Apa yang akan terjadi setelah pembuatan branch baru?


Tahapan Proses
Berikut tahapan proses yang akan kita lakukan dalam latihan membuat branch baru pada sebuah repository:

• Membuka repository yang telah dibuat.

• Melihat daftar branch yang ada.

• Membuat branch baru pada repository.

• Mengevaluasi branch baru.

Latihan Membuat Branch Baru


Pada materi sebelumnya, kita telah mempelajari banyak hal, mulai dari apa itu Git branch hingga penjelasan dari fungsi -fungsi di dalam Git branch itu sendiri. Pada latihan kali ini, kita akan membahas bagaimana cara
membuat branch baru di dalam repository GitHub. Dalam pembuatan branch Git, kita memerlukan beberapa hal, yaitu akun dan repository seperti pada materi-materi sebelumnya. Anda bebas menggunakan repository
apa pun. Jika Anda sudah menyiapkannya, ikutilah beberapa langkah berikut untuk membuat branch baru di dalam GitHub.

1. Hal pertama yang perlu dilakukan adalah masuk ke halaman repository, kemudian perhatikan bagian kotak merah pada gambar berikut:

2. Tekanlah bagian tersebut, maka akan tampil berbagai branch yang ada dalam repository saat ini .

Perhatikan gambar di atas. Anda dapat melihat find or create a branch dan di bawahnya terdapat list branch yang ada, yakni main.

3. Cobalah untuk menuliskan teks pada kolom find or create a branch. Jika Anda tidak menemukan branch yang dicari, secara otomatis GitHub akan menyediakan pilihan untuk membuat branch baru
dengan nama sesuai yang ditulis. Contohnya, silakan tulis kata “development”, maka hasilnya akan menjadi seperti berikut:

Kita akan dihadapkan dengan pilihan untuk membuat branch development berdasarkan main. Jika Anda menghapus kembali teks tersebut, maka tidak akan terjadi apa-apa alias tidak akan membuat
branch baru.

4. Cobalah tekan Create branch development from ‘main’ untuk membuat branch baru. Ketika Anda membuat branch baru, secara otomatis GitHub akan membuat cabang baru dengan
nama development berdasarkan main. Artinya, branch yang saat ini Anda buat (development) memiliki history yang sama dari main karena secara tidak langsung menyalin history commit dalam
branch main ke branch development.

“Kok bisa sih, ketika create branch atau membuat branch baru otomatis datanya sama dengan branch main?”

Hal ini terjadi karena Anda masih berada dalam branch main ketika melakukan pembuatan branch baru tersebut. Itulah penyebab pada branch development memiliki pointer atau commit yang sama
dengan branch main. Akan tetapi, ketika kita membuat file atau data baru, ia otomatis akan mengikuti cabang atau branch baru yang telah kita buat.

5. Setelah membuat branch baru berdasarkan main atau dari main dengan cara menekan tulisan Create branch : development, secara otomatis Anda akan berada di branch baru yang telah ditulis
sebelumnya, yakni development .

Di dalam gambar tersebut terdapat data yang sama dengan branch main. Jika Anda lihat, terdapat tulisan this branch is even with main di bagian tengah. Maksudnya adalah ketika Anda membuat branch
baru, otomatis branch tersebut memiliki data branch yang sama dengan branch sebelumnya. Hal itu juga bisa dikatakan dengan menyalin branch main ke branch development.

6. Nah, jika Anda membuat atau menambahkan file baru pada branch development, tulisannya akan berubah seperti gambar berikut:

Perhatikan tulisan this branch is 1 commit ahead of main pada gambar di atas. Hal itu berarti bahwa branch development telah memiliki 1 commit lebih dibandingkan branch main sebagai
master branch.

Latihan Melakukan Perpindahan Branch

Tujuan
Latihan melakukan perpindahan branch mengajarkan Anda bagaimana cara berpindah dari branch satu ke branch lainnya. Beberapa bagian dari latihan ini akan menjawab berbagai pertanyaan, seperti:

• Bagaimana caranya berpindah dari branch satu ke branch lainnya?

• Apa yang perlu diperhatikan ketika melakukan perpindahan ke branch lain?

• Apa yang akan terjadi setelah perpindahan branch lain?

• Bagaimana mendapatkan kode yang ada pada branch tertentu?


Tahapan Proses
Berikut tahapan proses yang akan kita lakukan dalam latihan melakukan perpindahan branch dalam sebuah repository:

• Membuka Repository yang telah dibuat.

• Melihat daftar branch yang ada.

• Melakukan perpindahan ke branch lain.

• Mengunduh kode dalam branch tertentu.

Latihan Melakukan Perpindahan Branch


Setelah kita membuat branch baru di dalam repository, selanjutnya kita akan memahami bagaimana cara berpindah dari satu branch ke branch lain di dalam GitHub. Oleh karena itu, ikutilah beberapa langkah berikut
untuk melakukan perpindahan branch satu dengan branch lainnya di dalam repository.

1. Sebelumnya kita memiliki dua branch, yaitu main dan development. Anda dapat melihatnya pada bagian pojok kiri halaman repository.

Seperti yang terlihat pada gambar di atas, saat ini Anda berada pada branch development. Bagaimana cara mengetahui perbedaan branch development dengan main? Caranya mudah, yuk lanjut ke
langkah selanjutnya.

2. Silakan klik pada bagian main di daftar branch, maka otomatis atau secara langsung Anda melihat data atau file yang ada di dalam branch main tersebut .

3. Jika ingin melihat perbedaan data atau file yang ada pada branch main atau development, Anda dapat membandingkannya dengan cara berpindah antara branch main ke development atau sebaliknya.

Lihatlah pada gambar di atas, terlihat berkas yang berbeda dari branch main, yaitu file hello. Selain itu, Anda juga bisa melihat bahwa pada branch development memiliki commit yang berbeda.

Dengan berpindah dari satu branch ke branch yang lain, Anda dapat melihat berbagai perubahan yang telah dilakukan pada tiap-tiap branch.

4. Apa yang telah Anda lakukan sebenarnya adalah menjalankan salah satu fitur Git, yakni git checkout. Selain untuk berpindah dari satu branch ke branch lainnya, kita juga dapat menggunakan git
checkout untuk melihat detail suatu commit.

Katakanlah ketika Anda melakukan commit ternyata memunculkan masalah dalam produk yang sedang dikembangkan. Anda perlu melihat detail dalam commit terakhir untuk mengembalikan perubahan
yang dilakukan. Melalui git checkout Anda dapat melihat detail dari commit tersebut, dan Anda juga bisa mengunduh repository tersebut.

Yang perlu Anda lakukan adalah masuk ke history commit yang ada. Masuklah ke bagian kumpulan commit dengan cara menekan infor masi dalam kotak merah berikut.

5. Setelah itu, Anda dapat melihat berbagai history commit yang telah dilakukan. Anda dapat melihat detail commit yang diinginkan dengan cara menekan tombol <> pada bagian kotak merah pada setiap
commit.

Anda juga bisa menyesuaikan commit pada branch apa yang ingin dilihat detailnya.

6. Setelah itu, Anda akan menjumpai nama branch yang berubah menjadi kode unik. Kode unik inilah yang dinamakan hash id dari setiap commit. Perlu kamu tahu bahwa SHA atau hash id merupakan
pengenal unik untuk setiap commit yang dilakukan [3].

Inilah yang disebut satu fitur git checkout, yakni melakukan checkout atau berpindah pada commit tertentu melalui id commit.

7. Dengan begitu, Anda dapat melakukan backup untuk melihat informasi atau data yang ada dalam commit tersebut. Sehingga Anda bisa mengimplementasikan untuk commit selanjutnya. Caranya cukup
mudah, cukup klik pada bagian code dalam kotak merah.

8. Kemudian Anda akan akan melihat beberapa opsi, seperti melakukan perintah Clone melalui alamat https, alamat ssh, GitHub CLI, dan GitHub Desktop, serta perintah Download ZIP. Oke,
pilihlah download zip untuk mendapatkan berkas repository dalam format zip.

Setelah mengunduh berkas tersebut, Anda dapat menggunakan berkas tersebut sebagai backup dan memperbaiki masalah yang ada dalam commit terbaru (commit yang terdapat bug).

Jadi seperti itulah fitur git checkout. Selain menggunakannya untuk berpindah pada branch tertentu, kita juga dapat berpindah pada commit tertentu untuk mengevaluasi apa yang telah dilakukan. Mantap, ya!
Apa itu Merge

Setelah kita memahami bagaimana cara membuat branch baru dan sedikit mempelajari tentang bagaimana fungsi merge atau penggabungan, maka di sini kita akan membahas lebih dalam lagi tentang apa itu merge
beserta fungsinya.

Merge adalah cara Git untuk menggabungkan histori dari branch (cabang). Kita tahu bahwa pemisahan cabang dapat dilakukan dengan Git branch, dan pastinya akan ada satu waktu di mana kita ingin perubahan pada
suatu cabang baru dapat kita terapkan pada cabang utama (main). Teknisnya adalah cabang baru yang berisi semua commit terbaru akan kita gabungkan kembali ke dalam cabang utama ( main) menjadi satu.

Pada dasarnya, merge berfungsi sebagai penggabungan beberapa urutan commit menjadi satu riwayat terpadu. Ia biasa digunakan untuk menggabungkan dua branch yang berbeda menjadi satu branch. Ketika Anda
menggabungkan dua branch menjadi satu, merge akan membuat sebuah commit baru yang menginformasikan penggabungan dari kedua br anch tersebut. Selain itu, histori dari kedua branch juga akan menjadi satu alur.

Mari kita gunakan ilustrasi untuk mempermudah memahami proses merge. Misalnya, kita memiliki cabang baru bernama Fitur yang dibuat berdasarkan branch Main . Kemudian kita ingin menggabungkan kedua branch
tersebut.

Ketika kita ingin melakukan merge atau penggabungan dari branch tertentu, semisal branch Fitur, maka kita akan masuk ke dalam branch Main (branch kita saat ini). Terlihat seperti pada ilustrasi di bawah ini.

Proses penggabungan setiap commit memiliki kode uniknya sendiri, seperti pada contoh Branch Fitur memiliki kode F dan Main memiliki kode unik M . Sehingga ketika kita menggabungkan dua branch menjadi satu,
branch tersebut akan membuat commit karena commit tersebut dianggap unik oleh branch lainnya, dan pada saat ini prosesnya akan dilakukan oleh GitHub secara otomatis untuk menggabungkan riwayat commit yang
terpisah menjadi satu pada repo tersebut untuk kita.

Jika pada saat melakukan proses merge terdapat perbedaan perubahan di satu line code yang sama pada file yang sama pada kedua history atau riwayat commit yang telah dibuat di masing-masing branch, maka GitHub
tidak dapat melakukan merge otomatis. Kondisi ini mengakibatkan gagalnya merge, jika hal ini terjadi, artinya file yang sama dengan perbedaan line code tersebut di dalam kedua branch perlu proses perbaikan yang
dilakukan oleh pengguna agar merge dapat dilanjutkan, proses yang terjadi ketika merge gagal ini disebut sebagai conflict.

Conflict terjadi karena dalam satu repository terdapat dua orang yang mengerjakan satu baris yang sama pada satu file yang sama dan akan digabungkan cabangnya. Contohnya, saya mengerjakan file bernama [Link]
dan tim lainnya juga mengubah [Link] di branch lain. Kami berdua telah melakukan commit di branch masing-masing dan saya ingin mengambil beberapa fungsi yang telah dikerjakan oleh teman saya tersebut. Nah,
ketika saya melakukan merge, maka di proses itu akan terjadi conflict.

Agar tidak terjadi kesalahan dalam melakukan merge, maka ada beberapa persiapan yang bisa kita lakukan, yaitu seperti berikut:

• Melakukan pemeriksaan terlebih dahulu pada branch penerima dan juga pada branch yang akan dipilih.

• Kemudian lakukan proses merge atau penggabungan dua branch.

• Jika terjadi conflict, itu artinya perlu dikaji ulang data mana yang dapat digunakan secara utuh tanpa bug atau kesalahan. Setelah itu akan dibuat commit baru agar jadi data baru yang tidak
memiliki conflict.

Apa itu Pull Request

Istilah Pull Request mungkin akan membuat bingung bagi sebagian orang. "Apa sebenarnya yang saya minta untuk ditarik (pull )?" Pertanyaan bagus. Sebuah Pull Request dalam GitHub adalah kegiatan yang
memungkinkan Anda memberitahu antar anggota tim tentang perubahan yang telah didorong ke cabang repository GitHub. Setelah pull request dibuat, Anda dapat mendiskusikan dan meninjau potensi perubahan
dengan kolaborator. Mereka juga dapat menambahkan commit baru sebelum perubahan tersebut digabungkan ke cabang tujuan (destination branch). Adapun dalam bentuknya yang paling sederhana, Pull Request
adalah mekanisme bagi pengembang untuk memberi tahu anggota tim lain bahwa mereka telah menyelesaikan sebuah fitur. Setelah cabang sumber (source branch) siap dan selesai, pengembang dapat mengajukan pull
request melalui akun GitHub mereka. Dengan begitu, semua orang yang terlibat dalam proyek repositori akan mendapat notifikasi. Sehingga mereka perlu meninjau kode dan menggabungkannya ke dalam cabang tujuan
(destination branch ).

Namun, pull request lebih dari sekadar pemberitahuan. Pull request adalah forum khusus untuk mendiskusikan fitur yang diusulk an. Jika ada masalah dengan perubahan yang dilakukan, anggota tim lain dapat
memberikan feedback pada pull request tersebut. Semua aktivitas tersebut dapat dilacak secara langsung melalui pull request.

Bagaimana Pull Request Bekerja


Pull Request dilakukan dengan menginisialisasi permintaan tarik (Pull Request), Anda akan melihat halaman ulasan yang menunju kkan gambaran umum tentang perubahan yang dilakukan dari cabang satu (source
branch) ke cabang tujuan (destination branch ). Anda dapat menambahkan ringkasan perubahan yang diusulkan, meninjau perubahan, menambahkan label, penerima tugas, dan pemb eri tugas. Anda juga dapat
menyebutkan akun kontributor atau anggota tim lain ke dalam deskripsi pull-request menggunakan @mention.
Setelah membuat pull request, Anda dapat melakukan perubahan baru (commit) dan mendorong (push) commit tersebut dari cabang sumber (source branch) ke cabang tujuan (destination branch) untuk menambahkan
perubahan. Semua commit yang dilakukan akan muncul dalam urutan kronologis atau pekerjaan pull-request. Untuk informasi yang lebih detail dari perubahan tersebut, dapat Anda lihat dalam tab "Files changed".

Kontributor lain dapat meninjau perubahan yang diusulkan, menambahkan komentar ulasan, berkontribusi pada diskusi pull request, dan bahkan menambahkan commit baru ke pull request tersebut.

Anda dapat melihat berbagai informasi dan aktivitas dalam pull request pada tab "Conversation".

Setelah perubahan yang diusulkan sudah sesuai, Anda atau anggota tim lain yang memiliki akses dapat menggabungkan perubahan dari cabang sumber (source branch) ke cabang tujuan (destination branch) dalam pull
request.

Perlu Anda tahu bahwa ketika membuat sebuah Pull-Request, GitHub akan memeriksa apakah perubahan tersebut menyebabkan conflict atau tidak. Sehingga Anda harus memastikan agar status pemeriksaan tersebut
terpenuhi dengan indikator berwarna hijau seperti berikut.

Bagaimana jika tidak terpenuhi? Ketika terjadi conflict atau ada hal yang tidak sesuai dari setiap perubahan, Anda dapat berdiskusi dengan anggota tim lain atau pemilik repository. Tujuannya agar mereka memberikan
komentar dan masukan mengenai setiap perubahan yang dilakukan pada fitur “File Changed”. Sehingga Anda dapat menyesuaikannya agar perubahan yang dilakukan dapat terpenuhi.

Workflow Git Branch


Sebelumnya kita telah membahas banyak mengenai Git Branch, mulai dari pembuat branch hingga menggabungkan dua branch secara langsung menggunakan Pull Request . Implementasi Git branch lebih terasa
meringankan penyimpanan daripada model sistem kontrol versi lainnya. Alih-alih menyalin keseluruhan project dari direktori ke direktori lain, Git menyimpan branch/cabang sebagai referensi commit. Ini berarti, ketika
Anda membuat branch baru dari branch tertentu, maka history dari branch tersebut akan melekat pada branch baru .

Contohnya Anda mempunyai branch main dengan commit a, b, dan c yang telah dilakukan. Kemudian dari branch tersebut dibuatlah branch baru darinya bernama branch fitur-baru. Sehingga branch fitur-baru akan
memiliki commit yang sama dengan main. Lalu jika Anda menambahkan satu commit baru (comit d) ke dalam branch fitur-baru, maka saat ini branch tersebut akan memiliki history commit a, b, c, dan d. Lalu
bagaimana jika menggabungkannya ke master? Anda dapat menggunakan git merge (jika menggunakan GitHub perlu menggunakan Pull Request) untuk menggabungkan dua buah commit Sehingga hasilnya adalah a, b,
c, d, dan d1 (d1 adalah hasil dari proses merger).

Oleh karena itu, branch mewakili serangkaian commit yang telah dilakukan, bukan sebagai wadah untuk commit-nya. Sebab branch merupakan sebuah alur atau proses commit dari awal hingga akhir. Mari kita jabarkan
urutan proses yang lazim dipakai dalam Git Branch, mulai dari membuat branch hingga menggabungkan ke branch tujuan:

• Membuat Branch atau Cabang Baru dalam Repository Git


Ketika membuat branch atau cabang baru, penting untuk dipahami bahwa branch baru bertujuan untuk membuat jalur lain dari bran ch yang sudah ada. Contohnya, Anda memiliki branch A berisi File 1
dan File 2 dengan commit 1, 2, 3, dan 4. Ketika Anda menjadikan branch A sebagai dasar dalam pembuatan branch baru (branch B), maka ia akan memiliki pointer commit (termasuk history commit)
yang sama dengan branch A. Lalu, sewaktu Anda melakukan perubahan data pada File 1 atau File 2 dalam branch B, ia akan memiliki pointer commit yang berbeda dengan branch A.

• Berpindah Dari Satu Branch ke Branch Lainnya


Branch dalam Git sangatlah ringan, maksudnya yaitu untuk pindah dari tiap branch sangat cepat. Contohnya ketika ingin berpind ah dari branch A ke branch B, Anda cukup klik ke branch yang dimaksud
(dalam GitHub) dan seketika itu juga langsung berpindah.

Ketika Anda berpindah dari satu branch ke branch lain, semua history (working tree/line commit) dari branch akan berubah. Contohnya branch A memiliki history commit 1, 2, dan 3, sedangkan branch
B memiliki history commit 4, 5, dan 6. Nah, ketika Anda berpindah dari branch A ke branch B, history commit akan menyesuaikan ke branch yang dipilih, yakni menjadi commit 4, 5, dan 6. Oleh karena
itu, semua data atau informasi dari branch sebelumnya akan berubah menjadi branch yang dituju.
• Menggabungkan Suatu Cabang (Source Branch) ke Cabang Tujuan (Destination Branch)
Merge branch atau penggabungan cabang merupakan perintah untuk menggabungkan urutan riwayat commit menjadi satu padu. Penggunaan Git Merge biasa digunakan untuk menggabungkan dua
cabang. Ketika Anda menggunakan GitHub, untuk menggabungkan Git Branch harus menggunakan Pull Request. Seperti yang dibahas dalam materi sebelumnya, Pull Request memudahkan Anda untuk
berkolaborasi dengan anggota tim lain atau orang lain sewaktu menggabungkan perubahan dalam cabang satu ke cabang lainnya.

Memperbaiki Conflict yang Terjadi Ketika Menggabungkan Branch


Apa itu conflict? Conflict adalah kondisi ketika Anda menggabungkan branch satu ke branch lainnya terdapat masalah dalam satu baris yang sama pada suatu file. Biasanya isi/codingan di dalam kedua
branch berbeda. Ketika terjadi conflict, kita perlu menyesuaikan mana yang seharusnya dipertahankan dan mana yang perlu dihapus.

Misal, Anda mempunyai dua buah branch, yakni Branch A dan B. Di dalam dua branch tersebut memiliki satu berkas yang sama bern ama file 1. Kemudian file 1 dalam branch A Anda ubah teks di
dalamnya menjadi “Halo Dunia”. Di waktu yang bersamaan teman Anda melakukan perubahan pada file 1 di branch B menjadi “Hello World”. Ketika Anda ingin m elakukan merge dari branch B ke
branch A, Anda perlu menentukan kata mana yang ingin dipertahankan. apakah tetap menggunakan “Halo Dunia” atau “Hello World”. Pada akhirnya, tergantung keinginan/kebutuhan Anda sebagai
orang yang akan menyelesaikan konflik (resolve conflict) tersebut.
Latihan Melakukan Merge

Tujuan
Latihan melakukan merge mengajarkan Anda bagaimana cara menggabungkan dua buah branch menjadi satu. Beberapa bagian dari latihan ini akan menjawab berbagai pertanyaan, seperti:

• Bagaimana cara menggabungkan dua buah branch yang ada dalam repository?

• Apa yang perlu diperhatikan ketika melakukan merge dari branch lain?

• Apa yang akan terjadi setelah merger?

Tahapan Proses
Berikut tahapan proses yang akan kita lakukan dalam latihan melakukan merge branch:

• Membuka Repository yang telah dibuat sebelumnya.

• Melihat daftar branch yang ada.

• Melakukan pull request.

• Melihat dampak dari pull request.

• Melihat hasilnya.

Latihan Melakukan Merge


Pada materi sebelumnya kita telah mengetahui bagaimana penggunaan merge beserta fungsinya. Kali ini kita akan belajar bagaimana menggabungkan dua buah branch ke dalam repository. Silakan ikuti beberapa langkah
berikut:

1. Hal pertama yang harus dilakukan adalah melihat apakah Anda sudah memiliki dua atau lebih branch pada repository yang ingin kita coba merge atau gabungkan. Mari kita contohkan dengan repository
yang telah kita buat sebelumnya mengenai belajar GitHub. Di sana kita telah membuat branch baru bernama development dan membuat file [Link] di dalamnya.

Bisa Anda perhatikan bahwa di dalam branch main tidak terdapat file tersebut karena berbeda branch.

2. Mari kita lihat terlebih dahulu daftar branch yang ada dalam repository dengan cara menekan bagian yang ditandai merah beriku t.

Catatan: Saat ini Anda berada dalam branch main.

3. Ketika Anda menekan tanda tersebut, maka akan tampil berbagai branch yang ada dalam repository.
4. Karena kita ingin branch main memiliki berkas [Link], kita perlu melakukan merge branch development ke branch main. Caranya, klik pada bagian new pull request pada bagian development.

Tujuannya adalah meminta izin untuk menerapkan commit yang dilakukan dari branch development ke main.

5. Setelah itu, Anda akan berpindah ke halaman Pull Request.

Ini adalah proses merging atau penggabungan dua branch, yaitu branch development merge ke branch main.

6. Perhatikanlah arah panah dari development ke main.

Artinya adalah segala commit atau perubahan yang dilakukan dalam branch development akan dimasukkan ke dalam branch main.

7. Perhatikan bagian setelahnya:

Pada bagian ini, terlihat teks yang sama ketika kita melakukan commit pada branch development. Akan tetapi, tidak mengapa jika Anda ingin mengganti judul dan deskripsi commit tersebut sesuai
keinginan. Jika sudah yakin dengan apa yang telah Anda lakukan, silakan klik pada bagian create pull request.

8. Setelah menekan tombol create pull request, maka tampilan selanjutnya akan jadi seperti ini:

Penjelasan dari beberapa item yang ada pada gambar di atas adalah seperti berikut:
a. Tab conversation, berfungsi untuk saling bertukar komentar antar developer jika ada yang ingin dibahas pada Pull Request tersebut.
b. Tab commit, berisi berbagai commit yang telah ditulis sebelumnya.
c. Tab checks, berfungsi untuk melakukan pemeriksaan jika ada pull request yang gagal ketika melakukan merge atau commit.
d. Tab files changed, berisi informasi file mana yang telah kita ubah atau tambah untuk branch target.

9. Oke, mari kita lanjutkan. Dalam kasus ini, pull request yang dilakukan tidak ada kesalahan sewaktu proses merge. Hal ini dibuktikan dengan munculnya tulisan “This branch has no conflicts with the
base branch”. Artinya, branch development dan branch main tidak akan menimbulkan masalah. Masalah atau konflik terjadi biasanya karena terdapat berkas yang sama, tetapi isinya berbeda.

10. Selanjutnya kita hanya perlu menekan tombol berwarna hijau pada bagian merge pull request. Kemudian, akan ada tombol confirm merge dan cancel.

Karena tidak ada yang perlu diubah, kita lanjutkan dengan menekan tombol confirm merge. Sehingga commit dalam branch development akan digabungkan setelah itu.

11. Jika sukses, akan muncul tulisan “pull request successfully merged and closed”.

Pada pojok kanan dari tulisan tersebut juga terdapat tombol delete branch yang berfungsi untuk menghapus branch development yang sudah berhasil digabungkan.

Jika ingin melihat branch yang telah kita merge, Anda hanya perlu masuk ke dalam branch main. Bisa Anda lihat bahwa file yang sebelumnya hanya ada di branch development, sekarang terdapat juga di dalam branch
main. Pertanyaannya, bagaimana jika terjadi masalah ketika menggabungkan dua buah branch? Tenang, latihan selanjutnya akan mengajarkan Anda bagaimana mengatasi masalah sewaktu menggabungkan dua buah
branch atau biasa disebut dengan resolve conflict .

Latihan Menyelesaikan Merge Conflict

Tujuan
Latihan menyelesaikan merge conflict mengajarkan Anda bagaimana cara mengatasi kesalahan atau conflict ketika menggabungkan dua branch menjadi satu. Beberapa bagian dari latihan ini akan menjawab berbagai
pertanyaan, seperti:

• Bagaimana menyelesaikan merge conflict?

• Apa yang perlu diperhatikan ketika menyelesaikan merge conflict?

Tahapan Proses
Berikut tahapan proses yang akan kita lakukan dalam latihan melakukan merge branch:

• Membuka Repository yang telah dibuat sebelumnya.

• Melihat daftar branch yang ada.

• Melakukan pull request.

• Terjadi masalah atau conflict sewaktu melakukan pull request.


• Menyelesaikan conflict..

Latihan Menyelesaikan Merge Conflict


Kita telah mempelajari bagaimana cara melakukan merge di repository GitHub dan sukses. Namun, setiap kita melakukan perubahan pada sebuah repository dan melakukan merge, belum tentu akan selalu sukses. Karena
pasti ada saja yang namanya kesalahan ataupun bentrok antar file. Hal ini bisa dinamakan dengan conflict ketika melakukan merge antar branch.

Dalam materi sebelumnya kita telah mempelajari conflict , sehingga saat ini kita akan mempelajari bagaimana cara mengatasi conflict sewaktu melakukan merge di dalam repository GitHub. Ikutilah berbagai langkah
berikut untuk menyelesaikan merge conflict di dalam repository:

1. Langkah awal yang perlu dilakukan adalah membuat commit conflict . Caranya, Anda bisa mengubah isi file yang sama pada kedua branch. Anda bisa menggunakan repository pada latihan sebelumnya.
Di sini kita telah memiliki dua buah branch yang memiliki berkas [Link] yang sama.

2. Tuliskanlah hal yang berbeda pada setiap isi teks [Link] pada masing-masing branch. Kemudian, lakukan commit pada masing-masing branch. Jika sudah, lakukan pull-request untuk menggabungkan
branch development ke main atau juga sebaliknya. Sehingga tampilan saat ini akan jadi seperti berikut:

Pada gambar di atas akan terlihat tulisan “this branch has conflicts that must be resolved” . Artinya, kita harus menyelesaikan conflict sebelum melakukan merge.

3. Mari kita selesaikan conflict tersebut dengan menekan tombol Resolve conflicts. Kemudian, Anda akan dipindahkan ke bagian teks area untuk melihat letak permasalahan atau conflict -nya.

Perhatikanlah Conflict pada gambar di atas. Tanda “ ======= “ merupakan pembatas antara branch development dan juga branch main. Maksudnya adalah pada bagian atas merupakan perubahan yang
dilakukan oleh branch development, sedangkan yang di bawahnya merupakan perubahan yang juga dilakukan oleh branch main. Jadi, ketika ingin melakukan resolve conflict atau menyelesaikan
masalah, Anda perlu memilih data mana yang benar.

4. Mari kita contohkan dengan menghapus isi branch main dan mempertahankan isi branch development. Kita akan menghapus semuanya kecuali teks yang telah kita buat atau ubah. Sehingga hasilnya
akan seperti pada gambar berikut:

5. Setelah itu, klik pada bagian pojok kanan atas bertuliskan mark as resolved untuk memberi tahu GitHub bahwa permasalahan pada berkas [Link] sudah terselesaikan. Sehingga tampilan saat ini akan
berubah menjadi seperti berikut:

Perhatikan gambar di atas. Berkas [Link] sudah resolved (terselesaikan) dan siap untuk dilakukan merge.

6. Jika sudah yakin dengan perubahan yang dilakukan, Silakan klik tombol commit merge untuk menyimpannya. Sehingga hasilnya akan seperti pada latihan melakukan merger.

Dengan begitu, Anda sudah bisa melakukan pull request dari branch yang conflict.

Rangkuman Git Branches

Sejauh ini kita telah banyak mempelajari peran penting git branch beserta fungsi-fungsinya. Selain itu kita telah melakukan latihan mulai dari membuat branch baru di GitHub, hingga mengatasi conflict ketika melakukan
merge pada repository. Berikut beberapa point materi Git Branch:

• Branch bisa disebut juga percabangan. Kita dapat meminimalisir kesalahan dalam server atau aplikasi yang berjalan sehingga mempermudah developer untuk melakukan bug fixing, hingga pembuatan
fitur baru di dalam repository.

• Berikut adalah alasan dari penggunaan Git Branch:

o Tanpa git branch pekerjaan akan menjadi rumit. Ketika fitur yang telah selesai masih menjadi satu dengan fitur lain dan kemudian dijalankan, maka akan terdapat banyak bug atau
kesalahan karena ada pekerjaan yang tumpang tindih.

o Penambahan branch baru dapat meminimalisir kesalahan pada aplikasi utama.

o Git branch juga berfungsi untuk mempermudah dalam berkolaborasi dalam tim. Selain itu, membuat pekerjaan menjadi lebih teratur karena setiap pekerjaan tidak saling tumpang tindih.

• Ketika pembuatan branch baru, kita memerlukan source (sumber) untuk pengembangan aplikasi, sehingga kita perlu mengambil sumb ernya berdasarkan branch utama yang biasa disebut main/master.

• Selain itu kita juga telah belajar bagaimana melakukan perpindahan branch atau bisa disebut juga git checkout pada GitHub. Perintah ini berfungsi untuk membuka commit tertentu secara sementara
serta membuka branch. Ketika berpindah dari branch satu ke branch lainnya, history commit dari branch tersebut akan menyesuaikan.

• Kemudian kita mempelajari merge, yang berarti penggabungan dua branch menjadi satu. Anda dapat menggunakan git merge untuk menggabungkan setiap branch yang dengan commit yang berbeda-
beda menjadi satu kesatuan baru di dalam branch. Selain itu, git merge juga dapat digunakan sebagai penggabungan setiap fitur yang telah dikerjakan. Ketika salah satu branch tidak ada kesalahan, Anda
dapat melakukan pull request untuk menggabungkannya ke branch utama.

• Ketika melakukan penggabungan dua branch atau merge, kita harus teliti. Sebab, jika kita melakukan kesalahan, bisa saja kita menghapus branch secara tidak seng aja. Akibatnya kita perlu melakukan
pembuatan ulang branch. Oleh karena itu, perlu kehati-hatian yang lebih pada saat melakukan merge agar branch yang telah dibuat tidak terhapus. Selain itu, ketika tidak teliti juga dapat mengakibatkan
conflict atau terjadinya kesalahan. Conflict terjadi karena Anda tidak memeriksa secara seksama branch utama dan sumber branch sebelum melakukan merge.

• Ketika terjadi conflict, Anda tidak perlu khawatir. Biasanya akan ada indikator ketika terjadi conflict, yakni tulisan "this branch has conflict that must be resolved". Kemudian Anda akan disuguhkan
code yang menjadi penyebab conflict tersebut. Anda dapat melihat batasannya conflict dengan simbol = (sama dengan). Anda dapat mempertahankan kode/data dari ke dua branch. Setelah merasa yakin
dengan kode/data yang ditulis, Anda dapat mengeklik bagian mark as resolved. Kemudian indikator conflict akan hilang. Saatnya untuk menggabungkan kedua branch dengan merge.

Demikian hal yang dapat disampaikan dalam pada materi git branch, mulai pembuatan branch hingga mengatasi conflict pada saat merge. Mengetahui git branch menjadi hal wajib ketika Anda melakukan pengembangan
aplikasi secara teratur. Tujuannya untuk memudahkan dalam mengatur pengembangan aplikasi kompleks yang telah berjalan maupun baru, sehingga Anda tidak akan mengalami kesulitan. Jika Anda masih belum paham
tentang materi git branch, silakan baca-baca ulang materi dan kerjakan kembali latihan yang ada ya. Selamat belajar!

Daftar Referensi

Silakan kunjungi beberapa tauatan berikut untuk mempelajari berbagai hal lain seputar Git Branches:

• Creating a Pull Request

• Merging a Pull Request

• Gitflow Workflow

• About Commits

Anda mungkin juga menyukai