Home » Coding » Git: Fungsi Branch dan Merge

Git: Fungsi Branch dan Merge

Pekan lalu, saya sudah membahas tentang penggunaan fungsi dasar Git, seperti add, commit, log. Tutorial kali ini saya akan membahas fungsi Branch dan Merge. Kedua fungsi ini tak bisa terpisahkan, saling melengkapi, Branch bertugas membuat cabang dan pengaturannya, Merge bertugas menggabungkan dua cabang yang berbeda.

Tentang Tutorial ini:

  • Tingkat Kesulitan: Pemula
  • Durasi: 15 menit
  • Materi: Git

Git Branch

Branch adalah duplikasi cabang sehingga perubahan dapat terjadi di kedua cabang secara paralel dan kontrol revisi pada masing-masing cabang terpisah.

git-branch-merge

Pada ilustrasi di atas, cukup jelas bagaimana alur branch dalam Git. Titik-titik diatas menunjukkan commit yang dilakukan pada setiap revisi. Sedangkan panah ke bawah adalah pembuatan duplikasi berdasarkan posisi commit saat pembuatannya. Panah ke atas adalah Merge, menggabungkan commit tertentu dengan branch lainnya. Tutorial sebelumnya, saya sudah membuat repositori untuk “sitemagz”, secara standar branch “master” menjadi branch utama setiap repositori Git.

git branch # menampilkan daftar branch

Dalam workflow yang saya pakai saat ini, ada dua branch yang selalu ada dalam repositori saya, yaitu branch master dan branch develop. Saya melakukan semua perubahan saat membangun applikasi saya di branch develop sehingga branch master hanya berisi applikasi yang berstatus stabil atau siap dirilis.

# membuat branch "develop", "develop" bisa diganti nama apapun
git branch develop

# berpindah ke branch develop
git checkout develop

Sekarang branch berada di branch develop, saya menambah berkas baru “page.html”. Kemudian saya akan melakukan commit pada branch develop sehingga perubahan akan tercatat.

git add page.html
git commit -m "menambah page.html"

git branch checkout

Lalu, apa bedanya branch master dan branch develop? Mari kita lihat perbedaan dengan melihat isi kedua branch tersebut.

git branch develop

Branch Develop

Saya berpindah dari branch develop ke branch master, gambar di bawah ini menunjukkan perbedaan kedua cabang. Berkas page.html yang tadi saya tambahkan tidak ada di branch master sebab berkas tadi adalah milik branch develop.

git branch master

Branch Master

Gambaran di atas menunjukkan bahwa setiap branch memiliki versi tersendiri dan tidak saling bertumpukan. Dengan asumsi semua perubahan hanya terjadi di branch develop maka versi stabil yang siap untuk diunggah hanya akan ada di branch master.

Kamu bisa dengan bebas menambah atau menghapus branch semudah membuatnya. Misalnya kamu akan menambah fitur baru di aplikasi kamu, cukup dengan membuat branch baru kemudian merge ke branch develop.

git branch -d <nama branch>

Perintah di atas memastikan Git tidak akan menghapus branch jika belum digabungkan ke branch lainnya. Jika ingin menghapus branch tanpa menggabungkan ke branch lain, gunakan perintah di bawah.

git branch -D <nama branch>

Git Merge

Sesuai namanya Git Merge adalah menggabungkan dua branch yang berbeda sehingga setiap branch memiliki versi yang sama. Apa gunanya menggabungkan kedua branch? Tentu saja sesuai workflow yang saya gunakan di atas, merge digunakan saat aplikasi sudah mencapai tahap stabil dan siap dirilis. Branch develop akan digabungkan ke branch master, sehingga kedua branch memiliki versi yang sama.

Untuk melakukan git merge saya akan berpindah ke branch master kemudian menggabungkan branch develop ke branch master.

git checkout master
git merge develop

Jika tidak ada konflik di antara kedua branch maka penggabungan keduanya akan berjalan mulus.

git merge

Git Merge

Tips

workflow branch di atas merupakan contoh sederhana yang sesuai digunakan untuk setiap programmer, namun saya menyarankan kamu membaca artikel oleh Vincent Driessen berjudul “A successful Git branching model” yang menjelaskan workflow komplit tentang penggunaan Branch dan Merge sehingga memudahkan alur pemrograman yang efektif.

Sekian dahulu artikel kali ini, nantikan seri berikutnya tentang Git Remote Repository. Jika ada yang ditanyakan, kotak komentar di bawah selalu terbuka untuk menampungnya. Terima kasih.


Artikel ini bagian dari tutorial berseri “Semua tentang Git”:

  1. Mulai Menggunakan Git!
  2. Git: Fungsi Branch dan Merge
  3. Git Remote Repository

7 Comments

  1. Mas saya sudah membuat akun di Bitbucket kebetulan saat ini support Git juga, Setelah buat akun saya sudah membuat repositori di Bitbucket via link add repository.
    Nah yang saya tanyakan jika mau memulai upload dari folder yang sudah ada di komputer lokal apa langkan2 yang harus dilakukan,

    Thanks atas jawabannya

    • Hassan Aly

      nanti di seri selanjutnya akan saya bahas tentang ini.
      dasarnya sih, pertama ditambah remote repositorynya, kemudian tinggal git pull.
      untuk panduan lengkapnya bisa googling dulu atau di dokumentasinya bitbucket. :D

  2. Mas, ksih dong kiat2 ato langkah2 konfigurasi GITnya yg bagus klo misal ada projek pgn dikerjakan dlam 1 tim dikantor, pakai penyimpanan lokal saja. (Biar lbh private) atau mungkin ada saran yg lebih baik dari mas.

    Perlu model kyk gimana saja yg paling efektif agar bisa ngerjain bareng2.

    Mohon bantuannya. Terima kasih. :)

  3. sebelumnya terima kasih tutorial pemulanya memberi saya gambaran yang cukup jelas mengenai GIT
    mudah2an tulisan berikutnya memberi contoh praktek projek yang dilakukan secara kolaborasi :)

  4. Permisi master, numpang tanya nih.

    misalnya saya punya project yang dikerjakan oleh 2 orang (saya dan teman saya)
    misalnya saya punya file dengan nama index.html di branch master
    kemudian teman saya buat branch baru,
    nah pertanyaannya apakah kita boleh mengubah file yang sama (index.html) pada branch yang berbeda?

    Mohon penjelasannya, terimakasih sebelumnya

    • Hassan Aly

      Sedikit gambaran git itu sistemnya DVCS, yang artinya tidak ada repository sentral. Jadi kita samakan persepsi dahulu bahwa git tidak seperti SVN, git commit terjadi di repositori masing2 (lokal atau di komputer masing2).

      Asumsi saya, kamu (A) dan teman kamu (B) masing mengerjakan satu proyek dengan repositori yang sama di masing2 komputer kalian.
      Maka ketika A dan B mengubah file index.html saat bersamaan tidak masalah, dan bisa melakukan commit direpositori masing2 (misalnya di laptop masing2).

      Nah, ketika A ingin mengambil perubahan pada repositori B, ada dua hal yang bisa dilakukan:

      1. A mengambil repositori B dengan melakukan pull ke repositori B
      2. B melakukan pull request ke repositori A

      Skenario lain, ada satu lagi repositori pusat yang berguna untuk mengambil masing2 perubahan pada repositori A dan B

      semoga sudah memberi penjelasan, maaf kalau lama balasnya :D

Leave a Reply

Scroll To Top