author Ahmad Muhardian

Tutorial Git #7: Menggunakan Percabangan untuk Mencegah Konflik


Bayangkan anda sedang bekerja dengan tim pada suatu repositori Git. Repositori ini dikerjakan secara bersama-sama.

Kadang… akan terjadi konflik, karena kode yang kita tulis berbeda dengan yang lain.

Misalnya, Si A menulis kode untuk fitur X dengan algoritma yang ia ketahui. Sedangkan si B menulis dengan algoritma yang berbeda.

Lalu mereka melakukan commit, dan kode sumber jadi berantakan. Anggota tim yang lain menjadi pusing.

Konflik pada repositori Git

Agar tidak terjadi hal yang seperti ini, kita harus membuat cabang (branch) tersendiri.

Misalnya, si A akan mengerjakan fitur X, maka dia harus membuat cabang sendiri. Si A akan bebas melakukan apapun di cabangnya tanpa menggangu cabang utama (master).

Cara Membuat Cabang Baru

Perintah untuk membuat cabang adalah git branch, kemudian diikuti dengan nama cabangnya.

Contoh:

git branch fitur_register

Maka Git akan membuat cabang bernama fitur_register.

Percabangan di repositori Git

Sekarang setiap orang memiliki cabangnya masing-masing. Mereka bebas bereksperimen.

Untuk melihat cabang apa saja yang ada di repositori, gunakan perintah git branch.

Contoh:

$ git branch
  halaman_login
* master

Tanda bintang (*) artinya cabang yang sedang aktif atau Kita sedang berada di sana.

Latihan

Untuk memantapkan pemahaman tentang percabangan Git, mari kita coba praktik.

Pada repositori, buatlah sebuah cabang baru.

git branch halaman_login

Setelah itu, pindah ke cabang yang baru saja kita buat dengan perintah:

git checkout halaman_login

Lalu tambahkan file login.html, isinya terserah anda.

Pembuatan Branch baru

Tips: Jangan lupa untuk menggunakan printah git status untuk melihat status repositori.

Kita sudah menambahkan file login.html. Selanjutnya kita lakukan commit.

git add login.html
git commit -m "membuat file login.html"

Bagus! revisi kita pada cabang halaman_login sudah disimpan. Sekarang coba kembali ke cabang master.

git checkout master

Apakah anda menemukan file login.html?

Pasti tidak!

Sekarang kembali lagi ke cabang halaman_login.

git checkout halaman_login

Cek lagi, apakah sekarang file login.html sudah ada?

project-01/
├── index.html
└── login.html

Ternyata ada. Yep! kita bisa mengambil kesimpulan, kalau perubahan pada cabang halaman_login tidak akan berpengaruh di cabang master.

Menggabungkan Cabang

Anggaplah kita sudah selesai membuat fitur login di cabang halaman_login. Sekarang kita ingin Menggabungkannya denga cabang master (utama).

Pertama, kita harus pindah dulu ke cabang master.

git checkout master

Setelah itu, barulah kita bisa menggabungkan dengan perintah git merge.

git merge halaman_login

Sekarang lihat, file login.html sudah ada di cabang master.

Penggabungan cabang Git

Hati-hati! kadang sering terjadi bentrok ketika menggabungkan cabang.

Mengatasi Bentrok

Bentrok biasanya terjadi jika ada dua orang yang mengedit file yang sama.

Kenapa bisa begitu, ‘kan mereka sudah punya cabang masing-masing?

Bisa jadi, di cabang yang mereka kerjakan ada file yang sama dengan cabang lain. Kemudian, saat digabungkan terjadi bentrok.

Mengatasi bentrok adalah tugas dari pemilik atau pengelola repostiri. Dia harus bertindak adil, kode mana yang harus diambil.

Biasanya akan ada proses diskusi dulu dalam mengambil keputusan.

Baiklah, sekarang kita akan coba membuat bentrokan 😄.

Pindah dulu ke branch halaman_login

git checkout halaman_login

Setela itu, edit file login.html atau index.html, karena kedua file tersebut ada di kedua cabang yang akan kita gabungkan.

$ git diff
diff --git a/login.html b/login.html
index 23a3f5c..eea5658 100644
--- a/login.html
+++ b/login.html
@@ -1 +1 @@
-di sini berisi kode untuk halaman login
+<p>di sini berisi kode untuk halaman login<p>

Setelah itu, lakukan commit lagi:

git add login.html
git commit -m "ubah isi login.html"

Selanjutnya pindah ke cabang master dan lakukan perubahan juga di cabang ini. Ubah file yang sama seperti di cabang halaman_login.

Setelah itu, lakukan commit di cabang master

git add login.html
git commit -m "ubah isi login.html di cabang master"

Terakhir, coba gabungkan cabang halaman_login dengan cabang master, maka akan terjadi bentrok.

$ git merge halaman_login
Auto-merging login.html
CONFLICT (content): Merge conflict in login.html
Automatic merge failed; fix conflicts and then commit the result.

Nah, kita disuruh perbaiki kode yang bentrok. Sekarang buka login.html dengan teks editor.

Kode yang bentrok

Kedua kode cabang dipisahkan dengan tanda ======. Sekarang.. tugas kita adalah memperbaikinya.

Silahkan eliminasi salah satu dari kode tersebut.

Eliminasi kode yang bentrok

Setelah itu lakukan commit untuk menyimpan perubahan ini.

git add login.html
git commit -m "perbaiki konflik"

Bagus! bentrokan antar ormas programmer sudah beres 😄.

Menghapus Cabang

Cabang yang sudah mati atau tidak ada pengembangan lagi, sebaiknya dihapus.

Agar repositori kita bersih dan rapi.

Cara menghapus cabang, gunakan perintah git branch dengan argumen -d dan diikuti dengan nama cabangnya.

Contoh:

git branch -d halaman_login

Akhir Kata…

Sekian tutorial ini. Semoga ada manfaatnya.

Referensi: help.github.com

Baca Juga ini

Tutorial Git #6: Perintah untuk Membatalkan Revisi

Tutorial Git #6: Perintah untuk Membatalkan Revisi

Pada tutorial git 05, kita sudah belajar cara melihat perbedaan di setiap revisi. Sekarang kita akan belajar, cara membatalkan sebuah revisi. Terkadang pada perubahan yang kita lakukan terjadi kesalahan dan kita ingin mengembalikannya seperti keadaan sebelumnya. Maka kita perlu menyuruh git untuk megembalikannya. Ada beberapa perintah yang digunakan diantaranya: git checkout, git reset, dan git revert. Membatalkan PerubahanJika revisi kita belum staged ataupun committed, kita bisa mengembalikannya menggunakan perintah git checkout nama_file.

Tutorial Git #5: Melihat Perbandingan Revisi dengan Git Diff

Tutorial Git #5: Melihat Perbandingan Revisi dengan Git Diff

Pada tutorial sebelumnya, kita sudah belajar cara melihat log revisi di repositori. Sekarang kita kan peljari perintah git diff, fungsinya untuk melihat perbedaan perubahan di revisi. Melihat Perbandingan Perubahan yang Dilakukan pada RevisiGunakan perintah berikut ini untuk melihat perubahan yang dilakukan pada revisi tertentu. git diff cf08ca0837cf26f1c595be36bb3a6b815e311be1 cf08ca0837cf26f1c595be36bb3a6b815e311be1 adalah nomer revisi yang ingin dilihat. Lihatlah hasil di atas, simbol plus (+) artinya kode yang ditambahkan.

Bahaya! Password dan Token API Bisa Dicuri dengan Sangat Mudah di Github

Bahaya! Password dan Token API Bisa Dicuri dengan Sangat Mudah di Github

Tidak perlu kemampuan khusus, tidak pelu tools yang canggih, hanya bermodal kata kunci, kita sudah bisa mencuri password dan token API di Github. Teknik ini mirip seperti Google Dork. Peringatan: Tulisan ini bukan untuk mengajarkan anda menjadi pencuri dan melakukan perusakan, melainkan untuk berbagi pengetahuan. Agar developer semakin teliti dan berhati-hati dalam melakukan commit. Password dan Token API dalam KodeBayangkan kita lagi mengerjakan proyek web dengan PHP.

Tutorial Git #4: Melihat Catatan Log Revisi

Tutorial Git #4: Melihat Catatan Log Revisi

Pada tutorial sebelumnya, kita sudah membuat dua revisi pada repositori project-01. Sekarang bagaimana caranya kita melihat catatan log dari revisi-reivisi tersebut? Git sudah menyediakan perintah git log untuk melihat catatan log perubahan pada respositori. Contoh penggunaannya: git log Maka kita akan melihat log perubahan apa saja yang sudah dilakukan dalam repositori. Pada gambar di atas, terdapat dua revisi perubahan yang telah dilakuan. Log yang Lebih PendekUntuk menampilkan log yang lebih pendek, kita bisa menambahkan argumen --oneline.

Tutorial Git #3: Simpan Perubahan Revisi dengan Git Commit

Tutorial Git #3: Simpan Perubahan Revisi dengan Git Commit

Pada tutorial Git yang kedua, kita sudah membuat repositori kosong. Belum ada apa-apa di sana. Sekarang coba tambahkan sebuah file baru. Sebagai contoh, saya akan menambahkan tiga file HTML kosong. Setalah ditambahkan, coba ketik perintah git status untuk melihat status repositorinya. Berdasarkan keterangan di atas, saat ini kita berada cabang (branch) master dan ada tiga file yang belum ditambahkan ke Git. googletag.

Tutorial Git #2: Cara Membuat Repositori Baru dalam Proyek

Tutorial Git #2: Cara Membuat Repositori Baru dalam Proyek

Repositori (repository) dalam bahasa indonesia artinya gudang. Repositori merupakan istilah yang digunakan untuk direktori proyek yang menggunakan Git. Jika kita memiliki sebuah direktori dengan nama proyek-01 dan di dalamnya sudah menggunakan git, maka kita sudah punya repositori bernama proyek-01. Membuat RepositoriPembuatan repositori dapat dilakukan dengan perintah git init nama-dir. Contoh: git init proyek-01 Perintah tersebut akan membuat direktori bernama proyek-01. Kalau direktorinya sudah ada, maka Git akan melakukan inisialisasi di dalam direktori tersebut.