Workshop Bersama Samsul Ma'arif (Pengenalan Git)

Dalam workshop kali ini kami mendapat materi tentang Git
A. Pengertian
Git adalah Version Control System (VCS) untuk melacak perubahan pada file komputer dan mengkoordinasikan pekerjaan pada file-file di antara banyak orang. Hal ini terutama digunakan untuk manajemen kode sumber dalam pengembangan perangkat lunak , namun dapat digunakan untuk melacak perubahan dalam sekumpulan file. Sebagai sistem kontrol revisi terdistribusi, ini ditujukan untuk kecepatan, integritas data, dan dukungan untuk alur kerja terdistribusi dan non linier.

VCS sendiri adalah Version control system adalah sebuah sistem yang mencatat setiap perubahan terhadap sebuah berkas atau kumpulan berkas sehingga pada suatu saat anda dapat kembali kepada salah satu versi dari berkas tersebut. 

Terpusat vs Terdistribusi
Banyak orang mungkin melakukan pengontrolan versi dengan menyalin berkas-berkas pada direktori yang berbeda. Cara ini sangat sederhana, namun cenderung rentan terhadap kesalahan. Oleh karena itulah sistem database versi diciptakan.

Version Control Local

Version Control Lokal
Kelemahan dari sistem ini adalah pengembang perlu melakukan kolaborasi dengan pengembang pada sistem lainnya. Untuk mengatasi permasalahan ini maka dibangunlah Centralized Version Control System (CVCSs). 
 
Version Control Terpusat
Version Control Terpusat
 Sistem seperti ini memiliki beberapa kelebihan, terutama jika dibandingkan dengan VCS lokal. Misalnya, setiap orang pada tingkat tertentu mengetahui apa yang orang lain lakukan pada proyek. Administrator memiliki kendali yang mantap atas siapa yang dapat melakukan apa; dan adalah jauh lebih mudah untuk mengelola sebuah CVCS dibandingkan menangani database lokal pada setiap client.
Walau demikian, sistem dengan tatanan seperti ini memiliki kelemahan serius. Kelemahan nyata yang direpresesntasikan oleh sistem dengan server terpusat. Jika server mati untuk beberapa jam, maka tidak ada seorangpun yang bisa berkolaborasi atau menyimpan perubahan terhadap apa yang mereka telah kerjakan.
Jika harddisk yang menyimpan basisdata mengalami kerusakan, dan salinan yang beran belum tersimpan, anda akan kehilangan setiap perubahan dari proyek kecuali snapshot yang dimiliki oleh setiap kolaborator pada komputernya masing-masing. VCS lokal juga mengalami nasib yang sama jika anda menyimpan seluruh history perubahan proyek pada satu tempat, anda mempunyai resiko kehilangan semuanya.

Version Control Terdistribusi
Version Control Terdistribusi
Lain halnya dengan DVCS (Distributed Version Control System) seperti Git, Mercurial, Bazaar atau Darcs. Klien tidak hanya melakukan checkout untuk snapshot terakhir setiap berkas, namun klien memiliki salinan penuh dari repositori tersebut.
Jadi, jika server mati, dan sistem berkolaborasi melalui server tersebut, maka klien manapun dapat mengirimkan salinan repositori tersebut kembali ke server. Setiap checkout pada DVCS merupakan sebuah backup dari keseluruhan data.


B. Sejarah
Perkembangan Git dimulai pada bulan April 2005, setelah banyak pengembang kernel Linux melepaskan akses ke BitKeeper , sistem manajemen  source control management (SCM) yang sebelumnya mereka gunakan untuk mempertahankan proyek tersebut. Pemegang hak BitKeeper, Larry McVoy , telah menarik kembali penggunaan produk secara gratis setelah mengklaim bahwa Andrew Tridgell telah merekayasa ulang protokol BitKeeper. 

hubungan antara komunitas pengembang Kernel Linux dan perusahaan komersil pembuat BitKeeper menjadi kurang baik, membuat status free-of-charge dicabut. Ini membuat komunitas pengembang Linux (dan terutama Linus Torvalds, pembuat Linux) akhirnya mengembangkan sendiri peralatan berdasarkan beberapa halyang dipelajari saat menggunakan BitKeeper. Beberapa tujuan sistem baru tersebut dibuat antara lain :
  • Kecepatan
  • Desain sederhana
  • Dukungan penuh untuk pengembangan non-linear (ribuan cabang secara paralel)
  • Terdistribusi secara penuh
  • Dapat menangani proyek skala besar seperti Kernel Linux secara efisien (kecepatan dan ukuran data)
C. Alur Kerja Git

  1. Buat repositori
  2. Salin revisi
  3. Ubah, tambah, hapus
  4. Kirim perubahan ke repositori

Description


 

No comments:

Post a Comment