Tutorial GIT (Versioning Control System) dengan Menggunakan github

Sudah menjadi standard bagi software engineer atau developer atau programmer untuk menggunakan versioning control system (vcs) dalam melakukan pekerjaan atau hobi menulis programnya. Terdapat berbagai pilihan vcs yang dapat digunakan sejak jama kernel linux pertama kali dibangun hingga hari ini.

VCS berdasarkan wikipedia adalah : “A component of software configuration management, version control, also known as revision control or source control,[1] is the management of changes to documents, computer programs, large web sites, and other collections of information. Changes are usually identified by a number or letter code, termed the “revision number”, “revision level”, or simply “revision”……
….VCS most commonly run as stand-alone applications, but revision control is also embedded in various types of software such as word processors and spreadsheets, collaborative web docs[2] and in various content management systems, e.g., Wikipedia’s Page history.

Berdasarkan git-scm.com : “Version control 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.”

Berdasarkan atlasian : “version control systems are a category of software tools that help a software team manage changes to source code over time. Version control software keeps track of every modification to the code in a special kind of database. If a mistake is made, developers can turn back the clock and compare earlier versions of the code to help fix the mistake while minimizing disruption to all team members.”

Sehingga dapat kita ambil kesimpulan bahwa vcs merupakan teknologi untuk me-manage perubahan source code sepanjang waktu (masa development), dan menyimpan seluruh check point modifikasi code. Sehingga keuntungannya jika terjadi kesalahan yang dirasa cukup urgen dapat dilakukan roll back, mengembalikan ke versi ketika source code tersebut berjalan dengan baik.

Ada yang membagi generasi VCS ini ke dalam 3 generasi, yaitu generasi pertama : RCS (Revision Control System), dan SCCS (Source Code Control System). Generasi kedua adalah seperti CVS, SourceSafe, Subversion, dan Team Foundation Server, dimana generasi kedua ini secara network masih bersifat centralized dan multi-file. Sedangkan generasi ketiga yang sudah terdistribusi (distributed vcs) seperti git, mercurial, bazaar, dan lain2, dan memiliki banyak perbedaan dengan generasi sebelumnya dari mulai network, branching, hingga interity, bisa dilihat di beberapa artikel seperti ini.

Kali ini saya ingin share mengenai bagaimana membuat account hingga melakukan push, clone, dan pull di git dengan menggunakan online repository seperti github.

Saat saya menulis ini saya menggunakan : thinkpad x220 i7 4GB SSD 150GB, dengan gnu/linux ubuntu 16.04 LTS.

jd untuk pengguna ubuntu cukup menggunakan perintah :

$sudo apt-get install git

Setelah itu anda tinggal daftar di http://github.com seperti di social media :

screenshot-from-2016-12-11-14-02-04

lalu klik sign up, setelah itu akan diarahkan ke halaman untuk mengisi informasi lebih lanjut. Misalkan sy menggunakan akun “hendr1-k” (akun aktif saya @situkangsayur). Jika membutuhkan private repositories bisa pilih yang berbayar, namun kita bisa mendapatkan layana gratis untuk public repositories.

screenshot-from-2016-12-11-14-06-03

Private repositories digunakan jika memang proyek yang kita kerjakan bersifat rahasia, tidak ingin dibagikan kepada orang lain (public), sedangkan public repositories repository proyek yang kita buat dapat di baca dan di download oleh orang lain (public) dan biasa digunakan untuk proyek opensource. Dalam contoh di gambar saya pilih unlimited public repositories for free.

screenshot-from-2016-12-11-14-07-13Setelah itu akan muncul page seperti dibawah dimana terdapat 2 tombol untuk membaca cara menggunakan git atau membuat project baru.

screenshot-from-2016-12-11-14-07-32

tampilan github guides :

screenshot-from-2016-12-11-14-08-06

jangan lupa verifikasi di email yang di daftarkan.

screenshot-from-2016-12-11-14-07-45

Setelah proses registrasi selesai kita sudah bisa menggunakan fasilitas github, untuk public repositories.

Tapi untuk dapat mengakses repository di github lebih baik kita berkomunikasi dengan menggunakan port ssh atau Secure ShellSehingga komputer di sisi github membutuhkan otentikasi dengan cara memberikan private key sistem operasi yang kita gunakan untuk komunikasi kepada akun github kita, dan ketika kita akan berkomunikasi dengan akun tersebut (push, pull, clone project) akun github kita menngizinkan kita masuk (remote), namun jika private key yang sistem operasi kita miliki berbeda git akan meminta otentikasi berupa user dan password. (kurang lebih sederhananya seperti itu)

Sehingg kita butuh mendaftarkan private key sistem operasi yang kita gunakan dalam mengerjakan proyek ke dalam akun github kita. Caranya :

  1. generate private key atau ssh-key yang kita perlukan sebagai private key yang akan dikenalkan ke akun github kita.
    • caranya dengan menggunakan perintah,
    • screenshot-from-2016-12-24-22-56-55Jika belum pernah membuat ssh private-key cukup tekan enter, jika ada pertanyaan untuk membuat passphrase dapat menekan enter langsung, jika tidak membutuhkan password tertentu untuk membukanya, setelah itu enter kembali.
    • Dikarenakan saya sudah pernah membuat ssh private-key sebelumnya, sehingga saya mengarahkan private-key (id_rsa) ke direktori lain (/home/hendri/.ssh2/id)rsa).
      screenshot-from-2016-12-24-22-57-53
    • Setelah itu kita harus membuka file id_rsa.pub untuk mendapatkan private-key di direktory yang sebelumnya menjadi target ssh-keygen.
    • screenshot-from-2016-12-24-23-09-13atau dapat menggunakan $catscreenshot-from-2016-12-24-23-03-59
  2. copy-paste private-key tersebut ke akun github kita, setelah itu savescreenshot-from-2016-12-24-23-14-01

Setelah itu kita dapat berkomunikasi dengan akun github kita dengan lebih leluasa dan aman.

Selanjutnya kita membuat repository baru dengan cara klik profile, lalu pilih tab repository.

screenshot-from-2016-12-24-22-35-49

screenshot-from-2016-12-24-22-36-17

Lalu pilih tombol “New” yang berwarna hijau untuk membuat repository baru.

Contohnya saya akan membua proyek sample-rest-flask (flask merupakan micro web framework).

screenshot-from-2016-12-24-22-38-29

Isi nama repository atau nama project sesuai dengan project yang akan dibuat, dan deskripsi project untuk membantu memberikan informasi lebih bagi yang melihat repository tersebut. Pilih proyek “public”, karena kalau private membutuhkan akun berbayar, dapat men-checklist pilihan “initialize this repository with a README” (standard project biasa memiliki README.md untuk menuliskan beberapa hal lebih lanjut mengenai projectnya, dan github akan menampilkan di bagian bawah source project ketika repository tersebut dibuka pada halaman source project). Namun kali ini saya tidak akan men-checklist opsi README tersebut, setelah itu click Create Repository.

Maka setelah itu akan muncul tampilan berikut, dan github memberikan informasi bagaimana melakukan inisiasi proyek dengan menggunakan github melalui git client.

screenshot-from-2016-12-24-22-38-48

Kini giliran di sisi client atau komputer kita, membuat project dan mengunggahnya ke github. Pertama kita membuat project dalam suatu folder tertentu, misalkan saya membuat 1 project sample-rest-flask dengan menggunakan python dan flask.

screenshot-from-2016-12-24-23-53-23

Pada dasarnya git memiliki 2 repository, pertama repository lokal di dalam komputer atau hard drive kita, yang kedua adalah repository di layanan penyimpanan repository VCS seperti github atau bitbucket.

lalu setelah itu eksekusi perintah :

  1. Pertama kita harus melakukan inisialisasi project sebagai repository dengan git, menggunakan perintah :
    • $git init
    • pada tahap ini kita melakukan inisiasi direktori project kita sebagai repository lokal project kita.
  2. Untuk meng-add semua files yang berubah (create, edit, delete, dan lainnya) gunakan perintah :
    $git add .
  3. Lalu setelah itu melakukan commit untuk menyetujui semua perubahan dan memberikan comment sebagai informasi perubahan yang dilakukan dengan opsi -m diikuti string ‘init commit’.
    $git commit -m 'init commit'
  4. Karena ini merupakan tahap inisiasi project makan dibutuhkan memberikan informasi alamat repository yang dituju dan biasa untuk alamat yang pertama menggunakan nama origin diikuti alamat repositorynya :
    $git remote add origin git@github.com:hendr1-k/sample-rest-flask.git
    • origin merupakan alias yang digunakan untuk alamat repository global kita di github.
    • tahap ini jarang dilakukan kecuali jika ada alamat repository lain yang digunakan.
  5. Setelah itu tinggal mengirim perubahan yang sudah dilakukan dan di setujui atau commit ke repository global di github, dengan menggunakan perintah:
    $git push origin master
    • perintah tersebut adalah melakukan push atau upload perubahan project ke repository global ke alamat repository origin dan dengan pada branch master.
    • Selebihnya membutuhkan pembahasan sendiri mengenai branching  dalam git.

Contohnya seperti berikut ketika perintah di atas di eksekusi :

screenshot-from-2016-12-25-00-01-36

Lalu ketika dipush:

screenshot-from-2016-12-25-00-30-09

Jika ada masalah seperti berikut :

screenshot-from-2016-12-25-00-29-51

maka yang perlu dilakukan hanya mengenalkan private-key ssh-key yang kita miliki ke ssh agent kita :

screenshot-from-2016-12-25-00-30-33

lalu ulangi tahap push sebelumnya. Jika berhasil maka refresh page repository di akun github kita, akan berubah sesuai dengan kondisi repository project lokal kita :

screenshot-from-2016-12-25-00-32-44

screenshot-from-2016-12-25-00-33-05

Tahap selanjutnya bagaimana jika kita merubah file di project kita lalu melakukan update di repository global dari repository lokal kita, cukup dengan perintah seperti berikut (relatif sama dengan tahap sebelumnya, hanya tidak perlu melakukan $git init dan add alamat repository):

  1. Add file
    $git add .
  2. Lalu commit dengan memberikan comment
    $git commit -m 'init commit'
  3. Lalu pull code dari repo global untuk mengupdate project di repo lokal, jika ada perubahan di repo global
    $git pull
    • Jika terjadi konflik perbaiki konflik code pada line tertentu setelah itu lakukan tahap add, lalu commit ulang.
  4. Setelah push ke repo global :
    $git push origin master

Misalkan saya melakukan perubahan seperti berikut :

screenshot-from-2016-12-25-00-33-26

lalu

screenshot-from-2016-12-25-00-34-16

Referesh halaman project atau file yang ada dalam project yang telah dikenakan perubahan melalui repo lokal sebelumnya.

screenshot-from-2016-12-25-00-34-37

Dapat kita lihat dalam contoh repository global akan mengikuti perubahan tersebut.

Lalu bagaimana jika sebaliknya terdapat seseorang dalam tim melakukan update ke repo global lalu kita ingin mengambil perubahan tersebut sehingga repo lokal kita mendapatkan perubahan yang sama dalam repo lokal kita, cukup dengan perintah $git pull.

Misalkan perubahannya seperti berikut :

screenshot-from-2016-12-25-00-37-17

Kita dapat menggunakan perintah $git pull seperti berikut :

screenshot-from-2016-12-25-00-37-39

dan hasilnya :

screenshot-from-2016-12-25-01-22-48

Dan terakhir, ketika teman satu tim kita atau seseorang sudah membuat repository global di layanan VCS tertentu seperti github, bitbucket, gitlab, atau lainnya, dan kita ingin mengambil project tersebut untuk melihat, mempelajari atau ikut berkontribusi, dan kita sudah diberi akses, yang kita cukup lakukan adalah dengan menggunakan perintah :

$git clone git@github.com:hendr1-k/sample-rest-flask.git
  • url git@github.com:hendr1-k/sample-rest-flask.git diganti dengan alamat ssh masing-masing repo global project masing-masing.

Pada dasarnya masih banyak fitur git yang tidak dijelaskan dalam artikel ini bahkan dalam artikel ini banyak sekali kekurangan dan mungkin dapat dilengkapi dengan artikela lainnya yang dapat dicari di google. Semoga sedikit tulisan ini dapat sedikit membantu dalam mengenal git dan github.

Dan kalau bingung mengenai perintah-perintah github di Command Line Interface (CLI), dapat menggunakan

$git --help

screenshot-from-2016-12-25-01-34-34

atau

$man git

screenshot-from-2016-12-25-01-35-01

Semoga bermanfaat…

Advertisements

One thought on “Tutorial GIT (Versioning Control System) dengan Menggunakan github

  1. Jack.D May 14, 2017 / 12:24 am

    Mantap jiwa salam gan.. perlu banyak refern masih newbie

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s