Jaman sekarang, seorang developer harus semakin menyadari bahwa untuk membuat produk yang baik tidak mungkin bisa sekali jadi. Setiap produk pasti punya kelemahan yang seiring waktu harusnya terus diperbaiki dengan penambahan dan pengurangan sesuai kebutuhan.
Proses perbaikan terus menerus ini mesti dicatat dan didokumentasikan dengan baik untuk kemudahan pengembangan dan juga mengurangi kesalahan. Setiap tahap perbaikan pada umumnya ditandai dengan angka atau kode agar dapat dikenal sebagai informasi untuk mempermudah tahap selanjutnya.
Maka sudah bukan hal yang aneh apabila saat ini banyak lowongan pekerjaan sebagai programmer selain wajib menguasai setidaknya satu bahasa pemrograman juga harus mampu mengontrol versi produk.
Untuk kebutuhan tersebut maka banyak perusahaan yang memasang syarat bagi pelamar harus bisa menggunakan GIT.
Untuk Apa Menggunakan GIT?
Kembali seperti yang sudah disinggung bahwa, sehebat apapun seorang developer tentu saja selalu ada kekurangan pada produk buatannya. Maka project yang baik adalah yang selalu diperbaiki agar lebih baik dari sebelumnya.
Setiap perbaikan biasanya ditandai dengan kode versi. Untuk mempermudah developer mengontrol versi perubahan pada berbagai sisi produknya maka GIT hadir sebagai solusi.
Tentu anda sudah sering mengetahui bahwa aplikasi yang dikembangkan ditandai sebagai versi
- alpha,
- beta,
- versi 1.0,
- versi 1.0.1 ,
- versi 1.0.2,
- .. dan seterusnya.
Perubahan versi ini adalah hasil perbaikan dari versi yang sudah ada sebelumnya. Tidak hanya untuk mengetahui yang mana versi yang lebih baru, namun dengan adanya penulisan versi maka dapat diketahui mana urutan yang lebih sempurna dan mana yang lebih awal.
Penulisan versi ini tidak hanya dibuat untuk pengguna agar dapat dengan mudah mengetahui mana produk yang lebih baru, tapi juga untuk developer sendiri. Setiap saat ada perubahan pada project maka developer perlu tahu mana bagian yang sudah diperbaiki dengan pencatatan yang tidak membuat ribet tapi dapat digunakan dengan baik.
Bila developer bekerja secara teamwork, maka setiap perubahan program harus diketahui oleh masing-masing anggota tim. Tentu saja setiap perubahan yang dilakukan harus dapat dengan mudah digunakan dan diupdate secara bersama.
Untuk mencatat perubahan pada program ini dikenal istilah VCS (Version Control System). Tidak hanya bagian akhir produk, tapi bagian-bagian kecil seperti modul, file ataupun fungsi harus dicatat. Setiap bagian mana yang diubah oleh developer dapat dicatat dan disimpan. Salah satu Version Control System yang populer saat ini adalah GIT.
Masalah Yang Sering Terjadi dalam Mencatat Perubahan Project
Untuk merubah suatu bagian program tentu menjadi tantangan tersendiri, masalahnya terkadang ketika sudah terlanjur diubah hasilnya malah lebih buruk ketimbang versi sebelumnya. Tentu hal ini menjadi mimpi buruk developer, apalagi bila tidak punya backup versi sebelumnya.
Maka proses pencatatan dalam versi harus dapat memenuhi syarat bila sudah diubah dan ternyata ada kesalahan maka harus bisa kembali ke kondisi sebelum program diubah. Untuk proses yang memenuhi kebutuhan ini maka diperlukan sistem pencatatan yang canggih dan online agar tidak hanya dapat digunakan kapan saja tapi juga dapat diperbaiki kapan saja dan dimana saja.
Sejarah GIT
Untuk memenuhi kebutuhan diatas maka seorang bapak Linux (pembuat kernel linux) yang bernama Linus Trovalds pada tahun 2005 memperkenalkan GIT. GIT yang kemudian dikelola oleh developer Jepang bernama Junio Hamano dapat dimanfaatkan oleh banyak developer dari seluruh penjuru dunia.
Hingga sekarang jutaan projek sudah memanfaat GIT untuk proses pencatatan dan kontrol yang dapat digunakan melalui berbagai sistem operasi termasuk Mac, Linux, Windows, Solaris dan lain-lain.
Jadi Apa itu GIT?
GIT merupakan Salah satu Version Control System yang dapat digunakan oleh developer secara gratis dengan berbagai Kelebihan dibandingkan Version Control System Lainnya. GIT dapat dikelola menggunakan perintah melalui command console khusus Git dan bisa juga dikelola dengan aplikasi GIT GUI Client.
GIT dapat mencatat versi project secara offline di komputer, tapi selain itu juga dapat disimpan secara online di website bernama GITHUB. Dengan menggunakan GITHUB maka pekerjaan bisa dilakukan bersama tim yang saling terkoneksi walaupun berjauhan (remote).
Kelebihan GIT dibanding VCS yang lain, antara lain:
- GIT menerapkan Version Control System terdistribusi bukan sistem Client Server
- GIT memberikan opsi developer untuk dapat membuat cabang atau branch code yang independen. Branch code dapat dibuat, digabung dan dihapus dengan mudah dan cepat.
- GIT menerapkan sistem yang bersifat atomic dimana suatu perubahan akan diselesaikan secara lengkap atau dinyatakan gagal sama sekali. Hal ini sangat penting untuk menghindari perubahan yang "nyangkut" sehingga berpotensi membuat repository menjadi tidak stabil.
- GIT menyimpan data dan informasi dalam folder .git bukan dalam metadata tersembunyi seperti svn, cvs atau lainnya sehingga lebih mudah ditelusuri
- Git membuat data model yang membantu integritas cryptographic dalam repository. Sehingga setiap menambah file, menambah commit maka checksum diciptakan. Atau misalnya perubahan digagalkan (retrive) dapat dirunut melalui checksumnya.
- Git menyediakan area staging dengan index sehingga developer dapat menambahkan commit atau catatan tersendiri sebagai informasi lalu bisa mereview dahulu sebelum diterapkan.
Selain GIT ada beberapa Version Control System yang dapat menjadi pilihan. Misalnya seperti Subversion (SVN), CVS, Bazaar, Mercurial, RCS, Perforce, ClearCase, GNU Arch, GNU CSSC dan lain sebagainya. Masing-masing Version Control System tersebut memiliki kelebihan dan kekurangan yang dapat anda pertimbangkan sebelum menggunakannya.
Cara Menggunakan GIT
Untuk memahami cara menggunakan GIT setidaknya anda perlu memahami status atau keadaan berkas anda. Git memiliki tiga jenis status keadaan utama yang diterapkan pada berkas-berkas Anda antara lain: committed, modified, dan staged.
- Committed berarti data berkas anda telah tersimpan dengan aman pada basis data lokal Anda.
- Modified berarti Anda telah mengubah berkas, namun belum di-commit ke basis data Anda.
- Staged berarti Anda telah menandai berkas yang telah diubah ke dalam versi sekarang untuk gambar keaadaan saat ini (snapshot) commit Anda selanjutnya.
GIT Memilih Snapshot, Bukan Berdasarkan Perubahan
Setiap kali Anda melakukan proses commit, atau menyimpan keadaan dari proyek Anda di Git, pada dasarnya hal itu seperti mengambil sebuah gambar atau snapshot tentang bagaimana tampilan semua berkas Anda pada saat itu dan menyimpan informasi acuan kepada snapshot tersebut. Maksudnya, jika berkas-berkas anda tidak berubah, Git tidak menyimpan berkasnya lagi, hanya membuat tautan ke berkas yang sama persis sebelumnya yang telah tersimpan.
Git bekerja lebih seperti sebuah aliran snapshot yang menyimpan informasi semua berkas pada saat anda melakukan commit.
Git menggunakan snapshot, tidak bekerja berdasarkan perubahan seperti Version Control Sistem lain.
Pemahaman kondisi ini akan membantu anda dalam mengatur bagian utama dalam proyek Git yaitu: direktori Git, working directory, dan staging area.
GIT yang pada mulanya dirancang untuk dapat mengakomodasi kebutuhan para programmer untuk dapat berkolaborasi dapat digunakan menggunakan perintah command line.
Perintah Command Line GIT Yang sering digunakan:
git config
merupakan perintah untuk mengatur konfigurasi agar git bekerja sesuai kebutuhan. Pengaturan antara lain seperti email untuk akses github, username, algoritma untuk diff, format file dll.
Contoh:
git config --global user.email inkonstellasi@gmail.com
git init
merupakan perintah untuk membuat repository baru
contoh:
git init
git add
merupakan cara menambahkan file ke master atau lokal index
git add contoh.txt
git clone
Merupakan perintah menyalin repository. Ada dua macam yaitu remote server, dan lokal. Remote contohnya:
git clone inkonstellasi@192.168.1.2:/path/to/repository
Sedangkan untuk lokal contohnya:
git clone /path/to/repository
git commit
Merupakan cara menambhakan pesan ke pada perubahan ke head. Apapun yang ditambahkan menggunakan commit belum langsung diperbarui di remote. Contohnya
git commit -m "ini contoh pembaruan"
git status
Merupakan perintah untuk menampilkan daftar file yang telah berubah bersama yang ingin di tambahkan catatan atau commit. Contoh
git status
git checkout
merupakan perintah untuk berpindah branch atau membuat branch baru.
- Untuk pindah Contohnya
git checkout <nama branch>
- Untuk membuat branch baru
command git checkout -b <nama branch>
git remote
Merupakan perintah untuk membuat user terkoneksi ke remote repository.
Perintah untuk menghubungkan repository lokal ke remote Contoh
git remote add origin <55.19.44.96>
git pull
Merupakan perintah untuk menggabungkan remote repository ke lokal repository.
Contoh
git pull
git merge
Merupakan perintah untuk menggabung sebuah branch ke branch yang aktif
git merge <nama-branch>
git diff
Merupakan perintah yang dapat menampilkan conflicts. Untuk menampilkan semua confict Contoh:
git diff
git rm
Merupakan perintah untuk menghapus file dari direktori dan index. Contoh;
git rm contohdihapus.txt
dan masih banyak lagi..
Cara Lebih Mudah Yaitu Dengan Menggunakan GIT GUI
Bila anda ingin yang lebih mudah tanpa harus menghafal perintah command line, maka juga bisa menggunakan versi GUI nya.
Ada banyak pilihan GIT GUI client yang saat ini bisa anda pilih saat ini. Berdasarkan Sistem Operasi pilihanya antara lain sebagai berikut:
Git Client di Windows
- GitHub merupakan Git Client GUI yang dapat digunakan untuk memantau workflow dan visualisasi repository GitHub.
- Tortoise Git merupakan Aplikasi GUI yang mudah dimanfaatkan dengan dilengkapi tambahan tool penting untuk pengembangan lainnya.
- Sourcetree merupakan aplikasi Git yang dapat dilengkapi dengan fitur canggih untuk pengguna berpengalaman tapi juga memudahkan pengguna pemula.
Git Client di Mac
- GitBox merupakan aplikasi Git untuk pengguna non komersil dengan gratis yang memudahan pekerjaan Git.
- GitX-dev merupakan aplikasi Git yang didesain dengan tampilan lebih lengkap dan mudah. Aplikasi ini dapat digunakan secara gratis.
- GitUp merupakan aplikasi git yang aman untuk digunakan secara gratis.
Git Client di Linux
- QGit merupakan aplikasi Git Client yang mudah digunakan dan gratis.
- Gitg merupakan aplikasi Git Client untuk memudahkan mengelola repository dan mengelola Git
- Git Force merupakan aplikasi Git yang dirancang untuk memberi pengalaman baru dalam mengelola Git dengan tampilan yang baik.
Cross Platform
- SmartGit merupakan aplikasi Git Client yang dapat digunakan secara gratis dan cerdas selama non komersil
- GitKraken merupakan aplikasi git yang handal dan memudahkan pengguna dalam memanfaatkan git.
- Git Cola merupakan aplikasi git Client yang simple, canggih dan efisien sehingga dapat mempermudah anda mengelola Git.
Tentu saja mungkin masih ada aplikasi GIT GUI lainnya yang belum kami tuliskan disini dan dapat anda pilih. Untuk saya sendiri sering menggunakan GIT-SCM di sistem operasi windows. Bila anda juga ingin menggunakan GIT yang sama seperti saya dapat anda donwnload sesuai sistem operasi yang anda gunakan melalui link download berikut.
Bila anda ingin mendapatkan dokumentasi lengkap GIT secara gratis dapat anda dapatkan melalui link berikut.
Tidak ada komentar:
Posting Komentar