Setelah postingan sebelumnya saya menulis tentang roadmap seorang web developer. Kali ini saya akan menuliskan dan membahas salah satu komponen dari roadmap tersebut.
Saya akan menulis tentang Git daan GitHub, yang mana saya sendiri juga baru berkenalan dengan aplikasi ini. Jadi di sini kita sama-sama belajar saja karena saya hanya akan berbagi dari apa yang telah dan sedang saya pelajari.
Sebelumnya saya tekankan di sini bahwa Git dan GitHub adalah dua hal yang berbeda dan terpisah, jadi kita bisa menggunakan aplikasi tersebut secara terpisah atau bahasa lainnya tidak harus digunakan secara bersamaan.
Version Control System (VCS)
Ada yang harus kita pelajari terlebih dahulu sebelum mengenal Git dan GitHub yaitu Version Control System (VCS). VCS biasa disebut juga source code management adalah sistem yang mengelola perubahan dari sebuah dokumen. Dokumen tersebut bisa berupa source code atau program komputer, website atau informasi lainnya. Apa sih latar belakang atau alasan kenapa kita perlu menggunakan VCS?
Beberapa hal yang menjadi alasan atau latar belakang mengapa diperlukannya VCS antara lain:
1. Bagaimana melacak history perubahan pada suatu dokumen?
2. Bagaimana untuk membuat version file misal dari sebuah program yang kita buat?
3. Bagaimana agar satu dokumen dapat dikerjakan secara tim atau kolaborasi anatara beberapa orang secara bersamaan?
4. Bagaimana jika kita ingin berbagi source code atau opensource dari program yang kita buat?
Untuk itu kita butuh sebuah Version Control System (VCS):
- Sebuah sistem yang menyimpan (rekaman/ snpashot) perubahan pada sebuah file/ source code
- Memungkinkan untuk bekerja secara berkolaborasi dengan lebih baik
- Kita dapat mengetahui siapa yang melakukan perubahan dan kapan perubahan tersebut dilakukan
- Memungkinkan kita untuk kembali pada perubahan sebelumnya atau ke keadaan sebelum perubahan (chekout)
Macam-macam VCS:
- GIT
- Subversion
- Mercurial
- CVS
GIT
Sekarang kita coba mengenal lebih dekat apa itu Git. Git adalah sebuah VCS terdistribusi untuk mengelola file dalam folder yang disebut repo/ repository. Penjelasan atau keterangan lebih lengkapnya mungkin bisa dibaca di halaman wikipedia tentang Git.
Pada Git kita akan bekerja dalam folder yang disebut repository/ repo. Riwayat perubahan yang terjadi pada file yang kita simpan dalam repo akan disimpan dengan sebuah commit dengan menggunakan sebuah penanda unik yang disebut hash.
Secara singkatnya dapat kita katakan bahwa 1 commit = 1 snapshot = 1 perubahan = 1 hash
GitHub
Sekarang kita akan coba mengenal tentang GitHub, adalah sebuah website layanan cloud untuk menyimpan/ mengelola project/source code. di GitHub kita bisa melakukan apa yang ada di GIT tapi bedanya semuanya dilakukan secara online. Penjelasan atau keterangan lainnya seperti biasa bisa dibaca di wikipedia tentang GitHub
Namun jika di komputer kita diinstal Git maka kita bisa mengirim project yang ada di Git ke GitHub dan juga sebaliknya kita bisa mengambil project yang ada di Git Hub untuk di simpan di Git. Proses tersebut bisa kita lakukan dengan syarat repo yang ada di GitHub kita clone untuk kita simpan di Git sehingga kita bisa bekerja dengan remote. Dengan kata lain kita bisa mengerjakan project kita secara lokal di komputer kita menggunakan Git dan selanjutnya project tersebut bisa kita kirim ke akun GitHub agar bisa dilihat bersama.
Demikian sekilas penjelasan tentang apa itu Gut dan GitHub dari apa yang sedang saya pelajari, penjelasan lengkapnya mungkin bisa dilihat di channel youtube Web Programming UNPAS tentang Git & GitHub
Berikut ini beberapa daftar istilah dari apa yang telah kita pelajari:
- VCS
- Git
- GitHub
- Repo/Repository, folder
- Commit, menyimpan perubahan pada suatu file
- Hash, penanda unik untuk setiap commit
- Checkout, beralih ke commit sebelum perubahan
- Branch, cabang dari sebuah commit
- Merge, menggabungkan beberapa branch
- Remote, sumber yang memeiliki repo untuk bisa melakukan clone
- Clone, membuat repo yang sama di lokal komputer kita (Git) dengan yang ada di GitHub
- Push, mengirim commit
- Pull, mengambil commit
Selamat belajar, tetap semangat dan semoga apa yang saya bagi di sini bisa bermanfaat. Terima kasih