Tutorial Github Desktop With GitKraken + Branching & Merge Version Control
GitKraken adalah Git Tools menggunakan GUI (Graphical User Interface) yang memudahkan pemakaian Git.
Fitur :
– dapat dijalankan di windows, mac, linux dengan klik kanan pada file / folder, kita dapat mengakses Git.
– One click undo and redo.
– Drag and dro to merge
– Easily clone and remotes.
– dapat dijalankan di windows, mac, linux dengan klik kanan pada file / folder, kita dapat mengakses Git.
– One click undo and redo.
– Drag and dro to merge
– Easily clone and remotes.
– Dark and light color themes
Sekarang bagi yang belom punya GitKraken silahkan download dulu disini
Oke next step, bagi yang udah download silahkan install gue akan mulai pake gambar disini
Nanti muncul popup kaya gini, ini sebenernya GitKraken gratis kok tapi bisa berubah jadi akun berbayar dengan fitur-fitur yang mantep buat startup company. Tapi cukup gratisan aja kok, centang Hide The “GitKraken Pro Free Trial” button lalu klik Not now, thanks.
Oke gue jelasin sedikit nih soal cara konekin folder local di laptop lo sama server.
Klik tombol folder dan disitu lo akan nemu beberapa fungsi
Clone ini digunakan dalam mengambil data yang udah ada di repository.
Lo bisa konekin akun GitLab, Vistud Team Services, dan juga Bitbucket.
Oke skip dulu GitKrakennya, kita back to Github.
Buat repository baru, beri nama kaya gue, ikutin aja kalo mau, engga juga gapapa.
yo kita copy to clipboard urlnya. Siapin aja yak.
Gue buat folder di desktop namanya HelloHTML buat percobaan aja. Silahkan diikutin duls buat yang masih baca blog ini.
Setelah buat folder create new file, kasih nama index.html dan masukkin kode dibawah dulu nih
Oke we’re ready now. Kalo udah lanjut nih.
Buka menu folder yang tadi, pindah ke init (Initialize). Disini kita mau nge-inisialisasi folder HelloHTML yang tadi kita buat sama perintah Git.
Pilih pathnya ke folder yang kalian buat.
.gitignore template ini digunakan dalam mendeteksi folder/file yang di ignore (tidak diikutsertakan) saat proses push file, karena biasanya file tersebut bersifat privasi atau terlalu besar contohnya .ENV atau folder Vendor di Laravel.
Oke license pilih aja copyright.
Sekarang kalo buka folder lo dan show hiddennya aktif, lo bakalan liat inisialisasi file .git disana, fungsinya ya buat ngejalanin fungsi git di folder kita kaya git push, git pull.
Oke ni tampilan awalnya, kita bisa liat di sebelah kanan kalo ada yang berubah dia akan ngasitau, cukup klik view changes dan akan keluar menu sepeti ini.
Disitu kita cukup klik index.html kedalam stage files. Kalo misalkan ada banyak file terus kalian mau input semua ya silahkan aja langsung klik stage all changes.
Jika sudah dicommit maka file akan masuk ke staged files dan kita bisa lihat apa yang kita ubah.
Tulis penambahan file index di commit.
Commit adalah komentar yang ditambahkan setiap mempush. Komentar ini digunakan dalam mengenali apa saja file yang kamu rubah, atau kamu tambahkan. Semacam keterangan gitu deh.
Klik remote pada sebelah kiri, tambahkan remote url ini yang digunakan dalam menjadi jembatan ke repository lo.
masukkan nama origin. kenapa origin? karena dasarnya membuat remote di github itu namanya origin.
Pull URL masukkan URL yang kita copy dari repository kita.
kalo udah tampilannya kaya gini. Disebelah kiri akan muncul origin. Kalo udah siap mempush filenya.
Klik push maka akan muncul popup tulisan branch. Disini origin adalah remote url kita dan / master adalah branch dari repository kita.
Branch adalah cabang code, cabang ini dapat digunakan dalam menentukan tempat kita menyimpan code. Contoh, kita mempunyai dua cabang, cabang utama dan cabang percobaan. File yang masuk ke server percobaan adalah file dari cabang percobaan. Setelah lolos test di server percobaan dan tidak ada bugs, maka cabang percobaan akan disatukan ke cabang utama untuk dimasukkan ke server produksi (production).
Kalau sudah berhasil maka silahkan buka halaman githubnya, dan cek apakah sudah berubah.
Dihalaman GitKraken lo sekarang sudah tercommit di master, yaitu commit Penambahan file index.
Buat file baru di folder, berinama profile.html dan masukkan kode diatas.
Kalau sudah terganti maka muncul jumlah file yang berubah, klik view change.
Masukkan profile.html dan masukkan commit message Penambahan file profile.
Push filenya!
Cek sekarang di dashboard, sudah masuk sekarang. Sekarang edit isi file index.html dan profile.html. Setelah itu terlihat dua perubahan yang terjadi.
Kita disini hanya akan memasukkan satu file yang dirubah, kenapa seperti itu? di kasus-kasus tertentu kita perlu memasukkan file yang kita ubah, gunanya apa? karena jika sudah dalam proses development di sebuah startup. Kita hanya ditugaskan mengerjakan file-file yang berkaitan dengan task yang kita dapatkan. Namun kadang kita iseng mencoba mengedit file lain, jika kita tidak mensortir file yang akan dimasukkan, dikhawatirkan kita akan menimpa file yang tidak perlu dirubah.
Commit perubahan file tersebut.
Lihat dashboard kita, kalau tidak error ya sudah masuk hehehe.
Lihat perubahan commit, ada perbedaan tulisan yaitu Perubahan Tulisan Hello World
Klik branch dan tulis dev (development) maka akan muncul tulisan Create branch: dev from ‘master’ dan klik tersebut.
Branch: dev muncul maka kita siap push ke branch dev.
Klik kanan di url origin, lalu klik fetch origin. Fungsinya adalah mengecek perubahan branch yang ada di server.
Setelah itu muncul branch dev, untuk memasukkan ke branch dev maka klik kanan di dev lalu Checkout origin/dev.
Setelah berhasil muncul Checkout Successful !
Masukkan file profile.html ke file yang akan kita push ke branch dev.
Setelah dicommit maka akan muncul branch Dev dengan tulisan commit yang kita tulis.
Klik push dan tunggu pesan dipojok kanan atas.
Sekarang kita cek branch dev. Disana terlihat commit perubahan file profile.
Kita bandingkan dengan branch master.
Terlihat jelas sekali bahwa di branch master tidak berubah.
Hal ini dilakukan agar file yang masuk ke branch dev dapat ditest terlebih dahulu oleh tester team agar fitur yang telah dibuat berjalan dengan baik, tidak ada bugs, dan berjalan sesuai task yang harus diselesaikan.
Sekarang kita akan melakukan merge antara branch dev dengan master.
Merge adalah metode yang dilakukan dalam menggabungkan file yang sudah ada di sebuah branch dengan branch yang lain, intinya harus dari branch yang filenya lebih update dengan file yang belum update, kenapa harus gitu? logikanya kamu pasti menimpa file lama dengan yang baru kan? bukan menimpa file baru dengan yang lama.
Bedanya apa dengan git pull?
Agit pull
is going to run agit fetch
and then agit merge
. If you want to bring your local repository up to speed with a remote repository that is what you would run.
A git fetch
is going to import commits from a remote repo without merging them, which gives you the opportunity to review them before integrating.
menurut jawaban Peter Foti yang gue kutip di stackoverflow.
Jadi sebenernya sama saja. Namun bedanya git merge itu lebih cepat dalam proses pengerjaannya karena tinggal menggabungkan file yang sudah diperiksa. Dengan git merge pula kita tidak perlu menulis commit lagi karena sudah ada tulisan commit dari branch sebelumnya. Tinggal git push saja.
Pilih file yang ada di branch dev tadi. Lalu klik kanan dan pilih merge dev into master.
Nah sekarang branch dev dengan master sudah di merge (gabung). File-file yang sebelumnya belum terupdate, sudah jadi terpdate karena sudah di merge dengan master.
Kalau sudah di merge sekarang klik PUSH!
Kalau sudah berhasil, maka cek lagi ke github.
See? sekarang commit yang ada di dev sudah digabungkan ke master.
Gampang? sangat!
Prosesnya simple untuk push. Initialize Git -> add file -> commit -> push!
untuk branching version. Checkout ke master -> PULL dari branch tempat kita checkout, jika checkout ke master maka PULL dari branch master (BIASAKAN PULL SETELAH CHECKOUT, UNTUK MENCEGAH GIT CONFLICT) -> merge dengan dev -> push!
Biasakan jika checkout dari master ke dev langsung pull ke branch tempat kita checkout, kalo dari master ke dev maka pull dari dev, begitupula sebaliknya jika dari dev ke master maka pull dari master branch. Pull itu bagaikan nafas para programmer team karena jika kamu bekerja secara team, perubahan code di repository bisa terjadi kapan saja dan kamu harus selalu update dengan perubahan tersebut, oleh karena itu membiasakan pull setelah checkout adalah hal yang baik. Gunanya apa? untuk mencegah conflict.
Git Conflict adalah konflik yang terjadi akibat tidak sinkron file yang kamu buat dengan repository.
As example, kamu checkout ke dev dan ada tulisan “Hello” di baris kedua. Lalu seseorang mengubah tulisan di baris kedua pada file tersebut, nama tulisannya adalah “Hello World” lalu melakukan push ke server. Setelah seseorang merubahnya kamu tidak melakukan pull, melainkan langsung merubah tulisan tersebut dengan tulisan “Hello Kiddy” jika kamu mengcommit file di laptop kamu lalu di push ke repository maka akan terjadi git conflict, karena folder .git yang ada di local kamu tidak dapat melakukan sinkronisasi tulisan dengan yang ada di repository kamu. Pada awalnya file tersebut ditandai A saat masih “Hello”, seseorang mengubahnya ditandai menjadi B saat berubah menjadi “Hello World” namun karena kamu belum mengcommit file tersebut lalu merubahnya tanpa melakukan pull, saat push server maka akan error, karena penanda file kamu saat itu masih A sedangkan file yang di repository sudah B.
Mungkin itu saja yang dapat saya berikan, semoga bermanfaat!
SUMBER
https://medium.com/@kiddy.xyz/tutorial-github-desktop-with-gitkraken-branching-merge-version-control-c679e5e547a2
https://tech.bodyfitstation.com/development/web-development/git/gitkraken/apa-itu-gitkraken/