Konsep Dasar Branch


Konsep Dasar Branch

Oke teman-teman, kita telah belajar Dasat Git Command sebelumnya, sekarang kita akan belajar materi yang lebih advance lagi. Jika kita sedang mengerjakan proyek, lalu kita ingin mengembangkan fitur baru tapi kita belum yakin untuk menambahkannya ke proyek kita, kita bisa mengembangkannya di branch baru. Jika kita memulai membuat sebuah proyek pada proses inisiasi repo kita akan dibuatkan branch default yang namanya master. Branch inilah yang selama ini kita gunakan. Membuat branch sama seperti kita menduplikat branch yang sudah ada dan memisahkannya dari branch master. Tapi konsep ini sering membuat keliru. Dibawah ini akan saya coba jelaskan bagaimana  konsep branch yang sebenarnya di Git.

Konsep branch

Sebelum kita bahas konsep branch, kita perlu mengingat lagi bagaimana Git menyimpan perubahan yang kita lakukan. Git tidak menyimpan perubahan sebagai kumpulan file yang berubah, melainkan menyimpan kumpulan snapshot.

Ketika kita melakukan commit, Git akan menyimpan sebuah object yang berisi pointer yang menunjuk snapshot dari file yang sudah di stage. Objek ini juga menyimpan nama author, email author, pesan commit dan pointer yang menunjuk commit atau commit-commit sebelumnya (parents dari commit saat ini). (zero parent untuk initial commit, one parent untuk commit biasa, dan two parent untuk merge).

Untuk menggambarkannya , kita asumsikan bahwa kita sudah membuat 3 file dan sudah kita commit. Me-stage file dengan melakukan checksum untuk setiap file menggunakan algoritma SHA, menyimpan versi file di git repository (git menyebutnya blob), dan menambahkan checksum tersebut ke staging area

Ketika kita melakukan commit, Git melakukan checksum ke tiga subdirektori yang kita buat tadi (blob dari masing-masing file yang kita buat) lalu menyimpannya sebagai tree di git repositori. Lalu git membuat objek commit yang menyimpan metadata dari tree yang sudah dibuat tadi. Sekarang git repositori menyimpan 5 object : 1 objek blob untuk tiap file kita (jadi ada 3), 1 objek tree, 1 objek commit.

commit and its tree

Kalo kita melakukan perubahan lalu commit lagi, objek commit berikutnya akan menyimpan pointer yang menunjuk ke commit sebelumnya.

Commit and its parent


Branch adalah pointer yang menunjuk ke salah satu commit yang ada tadi. Dia akan selalu berpindah mengikuti commit terakhir. Pada saat melakukan git init kita dibuatkan branch bawaan yaitu branch master, branch ini tidak spesial sama sekali.

branch and commit

Membuat branch

Apa yang terjadi jika kita membuat branch ? jika kita membuat branch, maka kita membuat satu pointer lagi yang menunjuk ke commit yang sama seperti ditunjuk oleh branch kita saat ini. Kamu bisa membuat branch dengan menjalankan perintah 

git branch testing

 

Saat ini kamu berada pada branch mana ? untuk menunjukkan kamu berada pada branch mana dibuat pointer khusus yaitu HEAD, isi dari working direktori mengikuti isi file pada branch yang ditunjuk oleh HEAD. Perintah git branch hanya membuatkan branch baru, tidak memindahkan HEAD ke branch tersebut.

head to branch master

Berpindah branch

Kita menggunakan perintah git checkout untuk berpindah branch. 

git checkout testing

head to testing

Dan jika kita melakukan commit pada branch testing, maka akan seperti ini.

Commit on branch testing

untuk selanjutnya kalian pasti sudah bisa membayangkan.

Oke, mungkin segitu dulu aja yang bisa saya bagikan ke kalian tentang konsep dasar branch. Jika kalian suka dengan postingan ini kalian bisa membagikannya. Kalian bisa subscribe blog ini supaya tidak ketinggalan postingan saya selanjutnya. Jangan sungkan juga untuk berkomentar ya.. Sampai jumpa di postingan saya selanjutnya.
loading...

Comments