Saat ini sistem Git sangat popular di kalangan pengembang perangkat lunak. Bahkan perusahaan raksasa seperti Facebook dan Google sudah mengadopsi sistem Git. Apakah kamu sudah tahu cara menggunakan Git? Belum? Ingin belajar lebih dalam mengenai Git?
Selamat! Kamu berada di tempat yang tepat. Karena sesaat lagi, saya akan berbagai pengalaman tentang cara menggunakan Git. Saya akan memaparkan dasar-dasar tentang Git dan cara mengaplikasikannya.
Apa yang akan kamu pelajari?
- Pertama, kamu akan mempelajari tentang Git, GitHub dan Command Line Interface (CLI).
- Kedua, kamu akan paham sistem kerja Git dan belajar cara menggunakan Git dengan benar.
- Ketiga, kamu akan belajar bagaimana menggunakan perintah pull, push, stash dan branch.
- Terakhir, saya akan sharing pengalaman tentang 2 tools Git GUI favorit saya, yaitu SmartGit dan GitKraken.
[toc]
Materi ini sangat newbie-friendly. Jadi, kamu tidak perlu takut pusing. Pelajari saja dulu. Mudah, kok! Pada setiap pembahasan saya beri ilustrasi dan gambar petunjuk. Dengan demikian, kamu bisa mengikuti materi ini step by step dengan mudah. Dahsyat, bukan? Baca sampai selesai.
Apa Itu Git?
Git merupakan sebuah Version Control System (VCS) yang dikembangkan oleh Linus Torvalds. Kamu sudah tahu siapa dia, bukan? Linus Torvalds adalah pendiri dan pengembang operating system (OS) Linux.
Sebelum membahas lebih dalam tentang Git, saya akan sedikit bercerita tentang VCS. Karena VCS adalah pengantar tentang Git. Dengan demikian, kamu tidak bingung! Setuju ya? Okay, lanjut!
VCS merupakan pengembangan dari software pendahulunya yang bernama Distributed Version Control System (DVCS). Kelemahan sistem DVCS terletak pada penyimpanan database Git. Di mana penyimpanan database Git terdistribusi. Jadi, database Git tidak hanya terletak pada satu tempat saja.
Linus Torvalds menyelesaikan masalah tersebut dengan merancang Version Control System (VCS) Git. Linus mengembangkan sistem yang memusatkan kontrol versi dalam satu database. Sehingga, setiap pengguna yang mengubah berkas/script akan tercatat pada data pusat.
Berikut ilustrasi sebelum dan sesudah adanya sistem Git Linus Torvalds.
1. Distributed Version Control System (DVCS).
2. Version Control System (VCS).
Apa yang bisa kamu pelajari dari ilustrasi di atas? Fokus pada sistem penyimpanannya. Masih belum paham? Baiklah, saya akan bantu menjelaskannya.
Perbedaan terbesar Distributed Version Control System dengan Version Control System terletak pada penyimpanannya.
- Pada Distributed Version Control System, sistem selalu membuat berkas/script baru setiap ada perubahan.
- Pada Version Control System, sistem hanya mencatat setiap perubahan dalam database Git. Jadi, sistem hanya menyimpan satu berkas asli saja.
Munculnya GitHub, Inc.
Berkat ide jenius dari sistem Git, muncullah perusahaan GitHub. Perusahaan GitHub menyediakan cloud hosting untuk software development version control dengan menggunakan sistem Git. Alhasil, sistem Git mendadak popular di seluruh dunia.
Sedikit penjelasan tentang GitHub, Inc. GitHub didirikan pada 8 February 2008. Pendiri GitHub adalah Tom Preston-Werner, Scott Chacon, Chris Wanstrath dan P.J Hyett. Saat ini, perusahaan GitHub terdaftar sebagai anak perusahaan Microsoft.
Dan GitHub memiliki karyawan sebanyak 1079 orang. GitHub memiliki pengguna aktif sebanyak 40 juta pengguna pada Agustus 2019. Sangat menakjubkan, bukan?
Dengan adanya GitHub, software development menjadi lebih mudah. Karena bisa terjadi kolaborasi antar pengembang software dengan sistem pengontrolan yang terpusat. Jadi, setiap pengembang dapat mengetahui informasi apa saja yang telah dikerjakan oleh rekan setimnya.
Kenapa Git Begitu Penting Untuk Dipelajari?
Dalam industri pengembangan perangkat lunak, sistem kolaborasi proyek sangat umum dilakukan. Tujuannya sangat sederhana, yaitu mempercepat penyelesaian produk digital. Sistem Git mempermudah semua aspek dari proyek kolaborasi tersebut. Bahkan, perusahaan raksasa seperti Google, Microsoft, Facebook, dan sejenisnya menggunakan sistem Git.
5 Alasan Kenapa Git Sangat Penting Untuk Kamu Pelajari:
- Kamu dapat melakukan proyek kolaborasi secara online melalui sistem cloud. Artinya, kamu dapat bekerja sama dengan pengembang lain yang lokasinya berjauhan. Jadi, proyek kolaborasi tidak terikat ruang dan waktu.
- Semua database Git tersimpan dalam sistem kontrol yang terpusat. Artinya, setiap anggota proyek dapat melihat perubahan database perangkat lunak secara realtime.
- Teknologi Git sudah menjadi barometer sistem pengembangan perangkat lunak pada perusahaan besar di dunia. Artinya, semua perusahaan sejenis akan mengadopsi sistem Git untuk mengefisiensi para programmer mereka.
- Sistem Git mempercepat proses review perangkat lunak dan mendukung budaya agil development.
- Kamu dapat menyimpan hasil pekerjaanmu secara online. Jadi, aman dari serangan virus dan kehilangan data penting.
Saya harap kamu sudah memantapkan diri untuk mulai belajar Git. Siap? Let’s dive in!
CATATAN: Dalam 10 menit ke depan, saya akan mengajarimu cara menggunakan Git. Tolong fokus dalam belajar. Karena ini dasar dari Git. Jika kamu mampu menguasainya, kamu akan mahir dalam waktu cepat.
Cara Menggunakan Perintah Git Untuk Pemula (GitHub)
Requirement:
- Download dan install Git Latest Version (https://git-scm.com/downloads).
- Buat akun Github (https://github.com/).
Sebenarnya ada berbagai tools lainnya yang membantu dalam pengaplikasian Git. Contohnya: GitKraken dan GitHub Dekstop. Tools ini secara GUI sangat praktis. Namun, bagi pemula yang baru belajar Git, lebih baik membiasakan diri dengan bash Command Line Interface (CLI).
Setelah kamu menyelesaikan requirement yang saya berikan, saatnya mulai belajar Git. Silakan ikuti tutorial di bawah ini:
Langkah #1: Pastikan kamu masuk terminal Git terlebih dahulu.
Catatan:
Bagi kamu pengguna Windows, langsung saja klik kanan pada area folder kosong. Selanjutnya, cari dan klik Git Bash Here.
Langkah #2: Masukkan Username dan Email menggunakan perintah di bawah ini.
git config --global user.name "Your name here" git config --global user.email "[email protected]"
Catatan:
- Ganti kata-kata di dalam petik dua dengan Username dan Email milikmu.
- Langkah #2 hanya diperlukan bagi kamu yang baru pertama kali memasangkan Git. Jika kamu sudah pernah menggunakan Git, langsung masuk ke langkah #3.
Langkah #3: Login ke akun GitHub milikmu.
Langkah #4: Setelah berhasil login, klik ikon plus pada bagian kanan atas halaman aktif GitHub. Selanjutnya, klik New Repository.
Langkah #5: Isi kolom Repository Name dengan nama yang kamu suka. Pastikan menu lainnya terisi sesuai dengan gambar yang saya contohkan. Jika sudah sama, klik Create Repository.
Catatan:
3 Hal Penting Terkait Halaman Repository
Ada tiga hal penting yang perlu kamu pahami dari halaman repository di atas:
- Repository merupakan sebuah folder pusat yang berfungsi untuk menyimpan source code. Owner dapat membatasi hak akses repository pada anggota tim pengembang yang lain. Hanya anggota tim yang kamu beri ijin yang dapat membaca, menulis dan menghapus file di repository. Pengaturan akses perijinan ini terdapat pada Collaborator.
- Collaborator merupakan user lain yang kamu beri hak akses untuk memodifikasi isi dari repository.
- Checkbox Initialize this repository with a README bisa kamu centang atau tidak. Karena hanya berpengaruh pada pembuatan berkas README.
Langkah #6: Salin link yang ada pada form quick setup.
Perhatikan gambar di bawah ini:
Catatan:
Link ini merupakan link untuk mengambil, mengubah, maupun menghapus berkas pada repository. Hak akses user tergantung dengan pengaturan Collaborator. Owner memiliki hak akses penuh terhadap repository. Jadi, sebagai owner kamu bebas memodifikasi repository milikmu.
Langkah #7: Masuk ke terminal kamu. Selanjutnya, pergi ke direktori tujuan penyimpanan repository. Kemudian, ketikkan git clone + link yang sudah kamu salin pada langkah #6.
Catatan:
- Bagi kamu pengguna Windows, langsung saja klik kanan pada area folder kosong. Selanjutnya, pilih dan klik Git Bash Here.
- Bagi kamu pengguna Linux maupun MacOS, silakan menyesuaikan diri dengan terminal masing-masing.
- Apabila kamu cloning dari repository orang lain mungkin kamu bisa mengambil berkasnya. Akan tetapi, kamu tidak bisa menambahkan, mengubah maupun menghapus berkas. Hal ini dikarenakan kamu belum diberi akses pada collaborator repository.
Langkah #8: Setelah sukses mengambil repository maka kamu dapat menambahkan berkas apapun pada folder tersebut.
Catatan:
Pastikan hanya mengunggah berkas yang berkaitan dengan pengembangan perangkat lunak.
Langkah #9: Untuk menambahkan berkas, ketikkan git add. Setelah sukses menambahkan berkas ketikkan git commit –m “Initial Commit“. Dan terakhir ketikkan git push origin master.
Bingung ya? Perhatikan gambar di bawah ini:
Catatan:
Git Add, Git Commit & Git Push Origin Master
- Tanda “ . “ berarti menambahkan apapun yang baru pada folder tersebut. Atau menambahkan apapun yang telah diubah dari berkas sebelumnya. Kamu bisa menambahkan berkas tertentu saja dengan cara git add index.html.
- git commit –m merupakan perintah untuk memberikan pesan terhadap berkas yang diunggah. Kamu dapat mengganti pesan di dalam simbol ‘petik dua (“…..”) dengan pesan yang lain.
- Perintah master merupakan nama cabang utama dalam repository milikmu. Istilah kerennya adalah branch. Kamu bisa melihat cabang utama pada akhir dari direktori. Perhatikan saja tanda warna kuning pada halaman terminal.
- Apabila kamu disuruh untuk login lagi setiap kali akses maka ikuti saja sesuai perintah. Namun apabila kamu mulai merasa terganggu, silakan coba tips ini. Cari tutorial cara menggunakan ssh dalam GitHub. Pelajari dan pratikkan.
Langkah #10: Setelah kamu sukses dalam menggunggah berkas ke GitHub, silahkan pergi ke repository.
Perhatikan gambar di bawah ini:
Catatan:
Apabila berkas yang kamu ungguh sudah sesuai, berarti kamu telah berhasil menambahkan berkas.
4 Fungsi Penting Dalam Menu GitHub
Untuk memudahkan kamu belajar, saya akan menjelaskan poin per poin.
1. Navigasi Repository.
Nama Navigasi | Kegunaan |
Code | Berisikan isi berkas dari repository |
Issues | Navigasi ini akan menampilkan report apa saja yang kamu tandai maupun orang lain. Misalnya: bug, pertanyaan atau penyempurnaan kode yang ada pada repository. |
Pull Requests | Navigasi ini berisikan tanda pull dari pengembang lain yang berfungsi untuk melakukan mengupdate folder. Bahasa sederhananya adalah permintaan untuk menggabungkan kode/update kode. |
Actions | Menu yang berfungsi untuk pembuatan workflow build, test dan deploy code pada repository. |
Projects | Menu ini berfungsi untuk mengatur setiap collaborator yang memiliki project pada repository tersebut. |
Wiki | Halaman ini berfungsi untuk menampilkan dokumentasi dari repository. Sederhananya, seperti roadmap dari repository tersebut. |
Security | Navigasi ini berfungsi sebagai pemberi peringatan. Halaman ini terdiri dari peringatan versi library. Jadi, peringatan muncul untuk mendeteksi kode yang mengandung vulnerabilities atau tidak. |
Insights | Navigasi ini berfungsi untuk melihat log apa saja yang ada pada repository. |
Settings | Navigasi ini untuk mengatur privacy repository. User yang dapat mengakses navigasi ini secara mutlak adalah owner repository. Collaborator yang telah diberikan izin dari pemilik repository juga dapat mengaksesnya. |
2. General Information.
Menu tersebut berisikan informasi umum mengenai data dari repository. Misalnya: jumlah commit yang telah dibuat, total branch yang ada. Dan jumlah collaborator dalam satu repository..
3. Drop Down Master.
Drop down master berisikan tentang branch apa saja yang terdapat di repository. New pull request untuk memberitahu pengguna lain bahwa repository telah diperbaharui.
4. Latest Commit.
Berisikan informasi tentang daftar berkas yang diunggah ke dalam repository.
Cara Menggunakan Stash dan Pull pada Git Untuk Pemula (GitHub)
Basic stash & pull sangat berguna untuk repository yang memiliki collaborator lebih dari satu. Saya akan menjelaskannya secara bertahap. Agar kamu tidak bingung, saya akan memberi ilustrasi pull pada Git.
Perhatikan gambar penggunaan pull pada Git di bawah ini:
Penjelasan
Apabila dari collaborator_1 melakukan push ke repository maka collaborator selain collaborator_1 harus melakukan pull terlebih dahulu. Pull bisa kamu asumsikan sebagai pembaruan berkas pada repository GitHub.
Jadi, database telah diperbaharui oleh collaborator_1. Setelah kamu melakukan pull maka kamu (sebagai collaborator_2) baru bisa melakukan push ke repository GitHub.
Problem
Bayangkan kamu sedang bekerja dengan lebih dari 1 collaborator. Dan antara collaborator tersebut mengubah baris kode yang sama. Pertanyaannya,”Kode mana yang akan disimpan oleh repository? Apabila nanti akan terjadi masalah? Bagaimana solusinya?”
Jawabannya: Jika antar collaborator melakukan push ke repository dalam baris kode yang sama maka yang tersimpan adalah push pertama ke repository. Artinya, kode dari collaborator yang pertama kali push yang akan disimpan oleh sistem. Prinsip ini berlaku pada teknik pull and push.
Solusi
Untuk memecahkan masalah ini kamu bisa menggunakan stash. Cara kerja stash cukup sederhana yaitu menyimpan semua perubahan sementara pada config git.
Sudah punya bayangan? Seperti ini alur solusi dari permasalahan di atas:
- Collaborator_1 melakukan penambahan fungsi y di baris kode 10, lalu di push ke repository.
- Collaborator_2 juga melakukan penambahan baris kode ke 10 dan ingin melakukan push ke repository. Akan tetapi tidak bisa.
- Selanjutnya, Collaborator_2 melihat ada perubahan repository, namun apabila menggunakan pull maka kode yang dibuat akan hilang. Akhirnya, Collaborator_2 melakukan stash terlebih dahulu sebelum pull.
- Setelah menggunakan stash maka Collaborator_2 dapat menggunakan perintah pull dan stash pop. Perintah ini berfungsi untuk menambahkan baris kode yang sudah di simpan pada stash.
- Collaborator_2 dapat melakukan push seperti biasa ke repository.
Kamu susah menerima penjelasan secara tertulis? Perhatikan ilustrasi di bawah ini.
Pastikan kamu membaca penjelasan yang saya berikan sambil melihat gambar ilustrasi.
Sampai di sini paham ya dengan cara kerja sistem pull dan stash. Masih belum paham? Hehe. Coba deh, baca lagi berulang-ulang.
“Repetition is the mother of skill“.
Apabila kamu tetap belum paham, silakan membaca berulang kali. Atau gini aja, kamu langsung mencoba praktik menggunakan stash dan pull. Mau? Coba ikuti tutorial stash dan pull di bawah ini:
Cara Menggunakan Stash dan Pull Pada Git
Langkah #1: Buka terminal kamu dan sesuaikan dengan direktori folder yang terhubung dengan repository GitHub. Untuk pengguna Windows, langsung saja klik kanan pada folder kosong dan pilih Git Bash Here.
Langkah #2: Ketikkan perintah git stash.
Langkah #3: Ketikkan perintah git pull.
Langkah #4: Ketikkan perintah git stash pop.
Langkah #5: Pada tahap ini, kamu tinggal melakukan push ke repository seperti cara menggunakan perintah GitHub di atas.
Catatan:
- Hal di atas merupakan dasar penggunaan git stash dan git pull. Akan tetapi, dalam praktik nyata akan berbeda. Biasanya, collaborator harus menggunakan lebih sedikit kombinasi dengan perintah dan kondisi.
- Bagi kamu yang baru belajar tentang Git, sebaiknya kamu banyak praktik. Coba pakai git stash dan git pull pada project skala kecil. Misal: 1-3 orang. Lakukan berulang-ulang sampai paham.
Cara Menggunakan Sistem Branching Pada Git Untuk Pemula (GitHub)
Selain pull dan stash, kamu perlu belajar tentang sistem branch. Coba pahami gambar ilustrasi di atas. Apakah kamu bisa memahami cara kerja sistem branching?
Loh, jangan pusing dulu. Hehe.
Okay, saya akan bantu sedikit. Coba baca penjelasan berikut ini:
Penjelasan
Pertama, kamu harus memahami arti asli dari branch itu sendiri. Arti dari branch adalah sebuah percabangan. Secara default, pengaturan awal Git pada repository membentuk cabang awal, yaitu master branch.
Coba bayangkan bahwa master branch ini merupakan sebuah produk yang siap di release pada pengguna. Sebagai pengembang perangkat lunak, setiap collaborator yang membuat fitur produk sebaiknya tidak push langsung ke master branch. Hal ini ditujukan untuk menghindari bug.
Dalam penambahan fitur pasti dibuatkan branch baru. Selanjutnya, setelah fitur itu selesai maka leader akan menggabungkan kode ke master branch menggunakan git merge.
Apa itu git merge? Bagaimana cara menggunakan git merge? STOP, topik ini belum bisa saya ajarkan untuk pemula. Jika kamu tertarik, kamu bisa belajar sendiri melalui Youtube ataupun Google. Kenapa? Karena untuk bisa menggunakan Git Merge kamu butuh ilmu pengantar git merge terlebih dahulu.
Okay, fokus ke topik branch Git lagi. Agar pemahaman kamu tentang branch Git semakin mendalam, saya sudah menyiapkan tutorial untukmu. Berikut langkah-langkah dasar pembuatan branch pada Git.
Tutorial Membuat Branch Pada Git
Langkah #1: Buka terminal kamu dan sesuaikan dengan direktori folder yang terhubung dengan repository GitHub. Untuk pengguna Windows maka kamu bisa menggunakan Git Bash Here.
Langkah #2: Ketikkan git branch x_features. Selanjutnya, ketikkan git checkout x_features.
Catatan :
- Nama x_features ini bisa kamu ganti dengan nama branch apapun. Bebas sesuai keinginan kamu.
- Fungsi dari git checkout adalah untuk memindahkan fokus branch. Kamu bisa lihat sebelum menggunakan git checkout berada pada master branch. Dan setelah menggunakan git checkout,
- Kamu bisa pindah branch yang lain. Apabila kamu ingin balik ke branch master, kamu bisa pakai git checkout master.
Langkah #3: Pada tahap ini, kamu sudah masuk ke branch baru, yaitu x_features. Setelah itu, kamu bisa menambahkan berkas apapun ke branch tersebut. Kamu tidak perlu takut master branch-mu rusak. Jika kamu melakukannya dengan benar, semua akan aman.
Catatan:
Kamu masih ingat dengan perintah git push origin master? Kata master ini ditujukan untuk master branch. Ada kasus menarik saat kamu ingin mengunggah berkas repository ke branch lain. Kamu harus menulis perintah git push origin master diikuti dengan nama branch yang diinginkan. Sebelum ini, kamu harus pindah dulu ke branch tersebut menggunakan git checkout.
Tools GUI untuk Git
Ada banyak tools GUI untuk menggunakan git. Ada tools yang dibuat khusus untuk OS Windows, Linux maupun MacOS. Bagi pemula saya sarankan mencoba 2 tools GUI cross-platform berikut ini:
1. SmartGit
SmartGit adalah aplikasi Git GUI grafis yang mendukung untuk SVN dan Pull request untuk GitHub dan Bitbucket. Kamu bisa menggunakan SmartGit pada sistem operasi Windows, Linux, maupun MacOS. Tertarik untuk menggunakan SmartGit Pro? Lihat pricelist SmartGit di sini.
Berikut ini tampilan SmartGit:
Kelebihan SmartGit:
- Terdapat fitur Conflict Solver untuk memecahkan conflict saat merge.
- Menambah kinerja pada rebase.
- Mendukung SmartGit-URL.
- Sistem sangat aman saat melakukan force push. SSH Client, dan File Compare.
- SmartGit sangat newbie-friendly. Jadi, kamu hanya perlu waktu singkat untuk menguasainya.
2. GitKraken
GitKraken adalah aplikasi Git GUI untuk Windows, Mac dan Linux. GitKraken akan membuat kerja pengembang perangkat lunak menjadi lebih produktif dan efisien. Kamu bisa menggunakan GitKraken untuk proyek kecil hingga skala besar.
Berikut ini tampilan GitKraken:
Kelebihan GitKraken:
- Terdapat Interaksi visual dan petunjuk penggunaan. Jadi, sangat mudah untuk menguasai GitKraken.
- Tidak membutuhkan Git Tools tambahan.
- Mendukung lebih dari satu akun.
- One-click untuk undo dan redo.
- Terdapat Built-in Merge Tool.
Dari pengalaman saya dalam menggunakan tools GUI untuk Git, saya lebih suka GitKraken. Aplikasi GitKraken lebih lengkap dan mudah digunakan. GitKraken memiliki 2 opsi pengguna, yaitu opsi gratis dan opsi berbayar. Lihat pricelist GitKraken di sini.
Pada opsi GitKraken berbayar, kamu akan mendapatkan fitur pengembangan Kanban. Sistem Kanban akan sangat membantu kamu dalam mengelola jadwal, alur dan task dalam tim pengembangan software. Jadi, semua pekerjaan akan lebih terstruktur. GitKraken sangat cocok bagi tim pengembangan perangkat lunak yang menyukai agil development.
Tips Cara Menggunakan Git Untuk Pemula
- Apabila kamu baru belajar tentang Git maka lebih baik manual terlebih dahulu. Kamu belajar dengan menggunakan terminal/bash pada Windows. Hal ini untuk melatih konsep dari sistem Git.
- Kamu harus mengingat tempat branch-mu berada. Jangan sampai salah push ke branch yang lain. Karena hal tersebut dapat mengacaukan alur kerja tim. Alhasil, proses pengembangan perangkat lunak akan terganggu.
- Berikanlah pesan pada saat melakukan perintah commit untuk setiap perubahan/penambahan berkas. Pastikan sesuai dengan kondisi yang ada.
- Setelah kamu mahir menggunakan git, pelajari tools GUI. Dengan demikian, proses kerjamu menjadi lebih cepat.
- Apabila kamu sudah mahir menggunakan Git, silakan lanjut belajar tentang GitKraken, GitLab dan VSCode.
Kesimpulan
Git merupakan sebuah Version Control System (VCS) yang dikembangkan oleh Linus Torvalds. Untuk mempercepat proses pengembangan Git, Linus membuat Git menjadi open-source. Alhasil, banyak perusahaan mulai melirik potensi Git dan mengembangkannya. Salah satunya GItHub (anak perusahaan microsoft).
GitHub adalah perusahaan penyedia cloud system berbasis Git. Dengan demikian, GitHub menjadi wadah komunitas pengembang perangkat lunak dari seluruh dunia. Jika kamu ingin menjadi seorang software engineer, sebaiknya mulailah belajar tentang Git. Saya sudah membuat panduan lengkap tentang Git, GitHub, GitKraken, dll.
Apakah ada panduan atau pembahasan yang saya lewatkan? Ingatkan saya dengan menuliskan pesan kamu di kolom komentar. Akhir kata, jangan lupa like dan share artikel ini ya. Dukung website ini dengan membantu berbagi artikel ke teman-temanmu. Jadi, saya akan semakin semangat menulis artikel berkualitas. Bantu share ya! Share itu gratis, kok! Hehe.