Git Branch dan Merge (Menggunakan Git Versi 3)

Postingan kali ini adalah postingan lanjutan dari artikel sebelomnya dari sini http://imron02.blogspot.com/2014/01/perintah-dasar-dasar-git-yang-sering.html. Dari postingan sebelumnya kita telah mengetahui cara menggunakan git dengan perintah dasar-dasarnya. Lalu sekarang kita akan membahas tentang penggunaan git branch dan git merge.

Git Branch

Untuk apakah git branch?

Jawabannya, menurut pemahaman saya git branch itu digunakan untuk melakukan percabangan pada repository utama git kita. Karena saat pertama kali kita membuat repository pada git, nama branch-nya itu adalah master. Nah branch master itulah branch utama dari repository kita. Kita bisa saja mendefinisikan/membedakan setiap branch pada repository git kita. Misalnya kita ambil contoh dari repository kernel Linux. branch master digunakan untuk sumber kode dari kernel yang sudah siap di publikasikan (release), sedangkan dilain pihak, kernel Linux mempunyai branch development yang dimana branch ini digunakan untuk kepeluan pengembangan kernel Linux sampai ke tahap stabil (siap untuk dipublikasi) yaitu pada branch master. Nah karena dari definisi tersebut, saya simpulkan dengan adanya git branch ini kita bisa mengatur repository kita dengan cukup baik, karena antar sumber kode dalam versi stabil tidak akan terganggu oleh versi development karena dikerjakan pada branch yang berbeda. Sedikit visualisasi dari saya mengenai git branch:

Lalu sekarang kita akan memasuki cara pemakaian git branch itu sendiri.
Buka terminal dan ketikkanlah perintah berikut ini (contoh yang saya gunakan adalah repository Example/repository yang sudah saya buat sebelumnya pada Menggunakan git di Linux):

$ git branch
* master

Dari perintah di atas, terlihat bahwa secara default repository example hanya mempunyai branch master. Lalu sekarang kita coba membuat branch baru dengan nama branch development

$ git branch development
$ git checkout development # Digunakan untuk berpindah branch
Switched to branch 'development'

Nah dengan perintah di atas tersebut, anda sudah berhasil membuat branch baru sekaligus pindah ke branch baru tersebut. Hal yang mungkin akan anda tanyakan.

Bagaimana cara kita mengetahui saat ini kita sedang pada branch yang mana/digunakan?

Jawabannya cukup mudah, untuk mengetahui saat ini posisi kita sedang dibranch mana adalah dengan menggunakan perintah:

$ git branch
* development
master

Dengan adanya tanda bintang pada tampilan di atas, itu menyatakan kita sedang berada di branch development.

Bagaimana cara mengetahui perbedaan antara branch development dengan branch master?

Jawabanya, kita akan mencoba sebuah kasus dengan cara melakukan pembuatan file lalu melakukan push.

$ touch development-file.html
$ git add development-file.html
$ git commit -m "adding file to development branch"
[development ec9fd66] adding file to development branch
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 development-file.html

$ git push origin development
Counting objects: 4, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 311 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 1 (delta 0)
To git@github.com:Imron02/Example.git
* [new branch] development -> development

Perintah di atas adalah kita melakukan push file developmen-file.html ke dalam branch development sekaligus menambahkan branch development ke remote repository.

Lalu inilah perbedaan antara branch master dengan branch development.

Branch Master
Branch Development

Jelas sekali bukan perbedaannya?

Git Merge

Apa itu git merge?

Menurut pemahaman saya, git merge itu akan digunakan apabila misal pada repository Example, sumber kode yang ada pada branch development itu sudah mencapai versi stabil dan siap untuk dipublikasikan. Maka, agar sumber kode yang ada pada branch development yang sudah stabil itu berada/dipindahkan ke branch master (sesuai pengertian awal saya, branch ini saya gunakan hanya untuk sumber kode stabil). Maka kita perlu melakukan merging penggabungan kode sumber dengan menggunakan perintah git merge agar branch master mendapatkan sumber kode dari branch development yang dianggap sudah stabil. Sedikit visualisasi dari saya:

Lalu perintah untuk melakukan mergin itu adalah (Masih menggunakan repository Example tadi):

$ git checkout master
Switched to branch 'master' # Lakukan perpindahan ke branch master dahulu

$ git merge development
Updating 6cfba95..ec9fd66
Fast-forward
development-file.html | 0
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 development-file.html

Nah apabila tidak terjadi konflik, maka akan terlihat seperti perintah di atas. Lalu apabila anda mendapatkan konflik. Maka bacalah artikel saya sebelumnya mengenai cara memperbaiki konflik http://imron02.blogspot.com/2013/10/memperbaiki-conflict-dan-log-github.html.
Nah sebenarnya perintah di atas itu kita hanyalah melakukan merge pada repository lokal saya (repository yang ada pada PC/Laptop kita saja). Lalu bagaimana agar merge ini terjadi pada repository remote juga?
Caranya lakukanlah perintah git status karena git akan memberitahukan kepada kita apa yang selanjutnya perlu dilakukan.

$ git status
# On branch master
# Your branch is ahead of 'origin/master' by 1 commit.
# (use "git push" to publish your local commits) # Perhatikan bagian ini
#
nothing to commit, working directory clean

$ git push
Total 0 (delta 0), reused 0 (delta 0)
To git@github.com:Imron02/Example.git
6cfba95..ec9fd66 master -> master
Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s