Sitemap

GIT — SCM

4 min readMay 14, 2020

--

Press enter or click to view image in full size
image source : git-scm.com

Versioning Control System (VCS) kembali diulas pada artikel ini. Dikarenakan pada artikel sebelumnya kita telah berkenalan dengan VCS maka pada artkel ini kita akan fokus pada salah satu software versioning yang sangat familiar d telinga para pengembang sistem informasi. Sesuai dengan judul di atas yaitu Git-scm yang merupakan salah satu software versioning. Jika anda masih belum memahami apa itu VCS maka silahkan untuk membaca kembali pengantar VCS pada artikel sebelumnya di sini.

Git merupakan sistem kontrol terdistribusi yang gratis dan open source yang didesain untuk mengani proyek mulai dari yang kecil dan ringan hingga proyek yang relatif besar. Sebagaimana motto pada situs resmi nya yaitu “distributed even if your workflow isnt” , git didesain agar mampu memberikan service yang mengutamakan kecepatan dan efisiensi. Git mengungguli tools SCM seperti Subversion, CVS, Perforce, dan Clearcase dengan fitur seperti cheap local branching, convenient staging areas, dan multiple workflow.

SERVICE

Sebagai suatu VCS sudah pasti git memberikan service yang mendukung workflow agar berjalan dengan cepat dan efisien. Berdasarkan situs resmi git-scm mendeskripsikan keunggulan dan service apa saja yang mereka miliki. Berikut sekilas akan saya perkenalkan beberapa keunggulan yang dimiliki git, lebih detail nya bisa lihat di sini.

Branching dan Merging — Kedua istilah ini sangatlah familiar ditelinga orang — orang yang sudah terbiasa dengan git. Bagaimana tidak, setiap orang akan cenderung membuat Branch untuk menyimpan perubahan yang dilakukan pada local project untuk menghindari adanya konflik di repository utama atau disebut dengan master branch. Branching ini adalah salah satu fitur unggulan git yang dapat membedakan tools scm lainnya karena memiliki model branch ini.

Get dana harum’s stories in your inbox

Join Medium for free to get updates from this writer.

Small and Fast — Kenapa git yang menampung banyak repository berani melakukan claim bahwa mereka bersifat kecil dan bekerja dengan cepat ?. Hal tersebut dikarenakan hampir seluruh operasi git dilakukan secara lokal, sehingga memberikan keunggulan untuk melakukan update revisi secara terus menerus dalam setiap detiknya. Kemampuan tersebut ternyata juga dipengaruhi oleh asal mula git yang dibangun pada kernel linux. Git yang dibangun menggunakan bahasa pemrograman C dapat mereduksi overhead runtime sehingga memiliki kecepatan dan performa yang tinggi. Pengujian performa git juga telah dilakukan pada aws dengan membandingkan antara git dan svn.

source : performance comparison

Distributed — keunggulan lain dari git adalah distributed workflow. Distributed workflow ini sangat membantu loh untuk menghindari adanya crash ataupun corruption pada source code. Multiple backup yang disediakan oleh git mampu memberikan antisipasi team untuk dapat melakukan backup secara bersamaan antar anggota. Jadi kalau misalnya ada data pada repositori utama yang bermasalah, setidaknya dari masing — masing orang tetap memiliki backupnya. Karena sifatnya yang terdistribusi maka akan memudahkan bagi developer untuk melakukan cloning project pada repository alih — alih melakukan pengecekan mendalam satu persatu pada source code nya. Ada hubungan nya branching — merging dengan distributed yang dimiliki oleh git. Sistem percabangan yang kompleks maka jumlah workflow yang tak terbatas bisa diimplementasikan dengan sangat mudah bahkan bagi pemula sekalipun dapat menggunakan git dasar.

Data Assurance — Jaminan kemanan data diberikan oleh git. Setiap data yang dikirim atau di commit ke repository git akan diintegrasikan dengan kriptografi per setiap bit nya. Jadi ga khawatir kalau kemungkinan data bocor yaa, karena yang bisa melihat atau mengakses kembali id commit adalah team atau orang yang memiliki akses. Setiap revisi yang dilakukan ketika dicommit kembali nantinya akan menghasilkan id commit yang baru. Sebagaimana pada dasar kerja versioning, kita dapat melakukan tracking apabila terdapat crash atau corrupt, id commit inilah yang nantinya akan sangat membantu tracking tersebut. Menurut analisa saya kemungkinan algoritma kriptografi yang diterapkan oleh git ini adalah cryptography asimetric. Nah untuk lebih detail tentang algoritma kriptografi mungkin akan saya ulas juga pada artikel selanjutnya yaa.

Staging Area — Pernahkah kalian sebelum melakukan update repository harus melalui step add dan commit ? . Awalnya saya bertanya — tanya kenapa harus melalui step add dan commit tidak langsung ke step push untuk update repository ? maklum belajarnya otodidak jadi yang penting berhasil saja tapi ternyata ketika kita mencoba untuk memahami struktur data yang diberikan oleh git maka kita dapat memaksimalkan kerjanya. Pada git terdapat suatu layer atau semacamnya yang disebut “staging area”, staging area ini merupakan area menengah dimana commit dapat direcisi dan diformat kembali sebelum sepenuhnya dicommit. STaging are juga memungkinkan kita untuk dapat memilah revisi mana saja yang akan dicommit. Jadi kalo misalnya setelah add revisi to stage area dan ternyata kita lupa ada yang harus direvisi kembali cukup commit file yang sudah ada pada stage kemudian setelah revisi bisa kembali add to stage pada sesi selanjutnya.

Press enter or click to view image in full size
source : struktur staging area

Demikian fitur dan layanan yang diberikan oleh git untuk mempermudah kerja kolaborasi kita agar bisa lebih cepat dan efisien. Artikel ini hanya berupa pengantar saja untuk lebih lengkapnya bisa dipahami kembali pada official website git. Pada official website git juga tersedia dokumentasi berupa video, akses untuk download yang support sistem operasi Mac OS X, Windows, Linux/unix. Sekian dulu dan see you on my next articles.

--

--

dana harum
dana harum

Written by dana harum

Seorang ibu pejuang tumbuh kembang dan early childhood parenting. Seorang Project coordinator pada sebuah IT Company. Career and family can go hand in hand!