
Dasar-dasar Percabangan Git
Kemampuan untuk bercabang dengan mudah adalah salah satu fitur terbaik Git. Membuat cabang di sistem kontrol versi lain bisa mahal dalam hal ruang dan persyaratan pemrosesan. Percabangan Git efisien. Jadi user lebih cenderung menggunakan cabang di Git.
A Branching Workflow
Misalkan Anda memulai proyek baru bernama myvideogame. Ini memiliki satu cabang. Nama default dari cabang awal di Git disebut master. Ini secara otomatis dibuat. Mari buat repositori Git myvideogame.
$ mkdir myvideogame
$ cd myvideogame
$ git init
Anda telah membuat repositori Git kosong. Mari tambahkan file design.txt kita dengan beberapa teks di dalamnya.
$ echo "Design Decision 1: Add Images" >> design.txt
$ echo "Design Decision 2: Write Code" >> design.txt
$ git add -A
$ git commit -m "C0: Added Design File"
Mari tambahkan beberapa perubahan lagi:
$ echo "Design Decision 3: Test Game" >> design.txt
$ git add -A
$ git commit -m "C1: Modified Design File"
Jika Anda memeriksa riwayatnya, Anda akan menemukan:
$ git log --oneline
6a09bd6 C1: Modified Design File
5f18d89 C0: Added Design File
Jika Anda memeriksa status Git dan semua cabang yang dibuat (menggunakan perintah: git branch -a), Anda akan melihat:
$ git status
On branch master
nothing to commit, working directory clean
$ git branch -a
* master
Saat ini, Anda memiliki situasi berikut:
Anda telah membuat dua komit di cabang master.
Misalkan, Anda telah menemukan bug dalam pengujian game Anda, tetapi Anda tidak ingin mengatasi masalah tersebut di cabang master karena Anda belum ingin mengacaukan desain aslinya. Jadi, Anda dapat membuat cabang baru bernama perbaikan bug:
$ git branch bugfix
Sekarang jika Anda memeriksa semua cabang:
$ git branch -a
bugfix
* master
Sekarang Anda telah membuat cabang baru yang disebut perbaikan bug. Situasinya dapat divisualisasikan sebagai berikut:
Namun, bintang(*) di sebelah cabang master berarti Anda masih berada di master. Jika Anda membuat perubahan, itu masih akan masuk ke cabang master. Anda dapat menggunakan perintah checkout untuk mengubah cabang:
$ git checkout bugfix
Switched to branch 'bugfix'
Anda dapat memeriksa cabang mana yang Anda gunakan dengan status atau perintah “branch -a”:
$ git status
On branch bugfix
nothing to commit, working directory clean
$ git branch -a
* bugfix
master
Sekarang, mari kita perbaiki bug:
$ echo "Bug Fix 1" >> design.txt
$ git add -A
$ git commit -m "C2: Bug Fixed 1"
Anda telah membuat situasi seperti ini:
Cabang master tidak memiliki perubahan C2. Anda dapat dengan mudah memverifikasi ini dengan memeriksa riwayat kedua cabang.
Pertama, sejarah cabang perbaikan bug:
$ git status
On branch bugfix
nothing to commit, working directory clean
$ git log --oneline
e8f615b C2: Bug Fixed 1
6a09bd6 C1: Modified Design File
5f18d89 C0: Added Design File
Kemudian Anda dapat beralih ke cabang utama dan memeriksa riwayatnya:
$ git checkout master
Switched to branch 'master'
$ git status
On branch master
nothing to commit, working directory clean
$ git log --oneline
6a09bd6 C1: Modified Design File
5f18d89 C0: Added Design File
Anda dapat melihat cabang master tidak memiliki perubahan dari cabang perbaikan bug.
Anda selalu dapat membuat cabang baru dari cabang saat ini tempat Anda berada. Misalkan, Anda ingin membuat cabang lain yang akan berisi fitur eksperimental. Anda dapat membuat cabang dari master dan menambahkan fitur eksperimental ke dalamnya:
$ git status
On branch master
nothing to commit, working directory clean
$ git branch experimental
$ git checkout experimental
Switched to branch 'experimental'
$ git status
On branch experimental
nothing to co mmit, working directory clean
$ echo "Adding Experiment features" >> design.txt
$ git add -A
$ git commit -m "C3: Added Experimental Features"
[experimental 637bc20] C3: Added Experimental Features
1 file changed, 1 insertion(+)
Jika Anda memeriksa riwayat cabang eksperimental Anda, Anda akan melihat:
$ git status
On branch experimental
nothing to commit, working directory clean
$ git log --oneline
637bc20 C3: Added Experimental Features
6a09bd6 C1: Modified Design File
5f18d89 C0: Added Design File
Anda akan melihat bahwa Anda tidak memiliki komit C2 yang dibuat di cabang perbaikan bug. Karena cabang eksperimental dibuat dari cabang master, itu tidak melihat perubahan perbaikan bug. Anda memiliki situasi berikut:
Kesimpulan
Selamat! Anda telah belajar cara bercabang.
Cabang Git mudah dan cepat dibuat. Itu salah satu alasan di balik popularitas Git. Jika Anda ingin menjadi user Git yang mahir, Anda harus mahir dalam percabangan Git.
Further Study:
https://git-scm.com/book/en/v2/Git-Branching-Basic-Branching-and-Merging