GIT, Si Pemersatu Kode Dari Segala Penjuru

Muhammad Raihan
6 min readMar 18, 2021

--

Git logo

Untuk kamu seorang software developer, pasti sudah mengetahui betapa rumit kode dari suatu aplikasi yang beredar dipasaran. Untuk mengerjakan seluruh aplikasi adalah suatu beban yang sangat berat jika hanya ditanggung oleh 1 orang software developer. Belum lagi, jika ada kesalahan kode yang mengharuskan untuk menghapus semua kode baru agar semuanya kembali berjalan secara normal. Maka dari itu, sebuah aplikasi umumnya dikembangkan oleh sebuah developer team. Bagaimana mereka bekerja sama membuat sebuah aplikasi? Apakah setiap developer harus menunggu pekerjaan developer lain untuk menggabungkan pekerjaan dari developer lain? Masalah pada pertanyaan tersebut terjawab oleh Version Control System.

Version Control System

Menurut Atlassian, Version Control System (VCS) adalah software yang integrated dan bertujuan untuk membantu para developer mengelola perubahan source code. Integrated software ini dapat mencatat setiap modifikasi kode yang terjadi pada repository tertentu. VCS dapat membantu developer untuk membandingkan kode sebelum dan sesudah modifikasi apabila terjadi kesalahan pada kode. Selain itu, VCS juga mampu mengatasi masalah modifikasi source code seorang developer yang mungkin saja tidak compatible dengan modifikasi developer lain. Dengan kata lain, penggunaan VCS yang maksimal akan membuat sebuah developer team bekerja secara maksimal tanpa memaksakan suatu cara cara kerja tertentu.

Ada banyak jenis VCS yang memiliki keunggulan dan kekurangan masing-masing, antara lain:

  • Bazaar
  • Subversion (SVN)
  • GIT
  • dll.

Pada kesempatan ini, saya akan berbagi mengenai salah satu VCS paling terkemuka dan digunakan pada pengerjaan proyek PPL 2021, yaitu GIT.

GIT

GIT adalah VCS yang dirancang oleh Linus Torvalds, yang pada awalnya hanya ditujukan untuk pengembangan kernel Linux. Namun, sekarang GIT sudah berkembang sebagai salah satu VCS yang paling banyak digunakan software developer. Sampai sekarang, GIT memiliki 2 layanan web-based repository yang sangat populer, yaitu GITHUB dan GITLAB dimana keduanya memiliki kelebihan dan kekurangan masing-masing

START USING GIT

Untuk memulai git repository pada folder yang awalnya belum di-track oleh git, gunakan command berikut :

git init

Command tersebut akan membuat folder menjadi sebuah git repository dan dapat mencatat semua modifikasi source code pada seluruh file di folder tersebut. Ada cara lain untuk memulai menggunakan GIT. Jika ingin melakukan “penyalinan” terhadap source code yang sudah ada pada web-based repository (contoh: GITLAB), maka gunakan command berikut :

git clone <link clone http>

Dengan code tersebut, kita melakukan copy seluruh file dari link tersebut ke dalam local folder device kita.

BRANCHING

Branching in GIT

Salah satu kelebihan Git adalah fitur branching yang mudah. Jika contohnya kita ingin melakukan modifikasi namun masih ragu apakah dapat merusak source code atau tidak, kita dapat mencoba ide tersebut dengan membuat branch baru tanpa mengubah source code pada branch utama terlebih dahulu. Kita dapat melakukan hal tersebut dengan command berikut :

git checkout -b <branch-name>

atau

git checkout <branch-name>

Perbedaan dari kedua command tersebut adalah pada opsi “-b” yang berarti pindah ke branch yang baru dibuat. Dengan command ini, maka kita dapat pindah branch dengan mudah.

TRACK YOUR SOURCE CODE

Setelah melakukan modifikasi kode, kita dapat mencatat file apa saja yang sudah dimodifikasi dalam folder tersebut. Kita dapat melakukan hal tersebut dengan command :

git add . (untuk semua file)

git add <file-name> (untuk file tertentu).

Setelah command diatas, kita dapat membuat catatan modifikasi apa yang dilakukan pada file-file tersebut. Untuk melakukan command tersebut, kita dapat menggunakan command “commit”, seperti :

git commit -m “<your message>”

Untuk melihat modifikasi dan commit apa saja yang sudah dilakukan pada repository tersebut, kita dapat menggunakan command “git log” dan dapat melakukan perubahan kembali ke suatu commit point dengan command “git revert”. Untuk memeriksa apakah ada modifikasi yang terjadi dan info lainnya, maka kita dapat menggunakan command “git status”.

PUSH/PULL AND MERGE YOUR CODE

Exchange between remote and local repository

Setelah melakukan commit pada git repository, kita dapat meng-upload code kita ke web-based repository/remote repository yang digunakan. Kita dapat melakukan hal tersebut dengan command :

git push origin <branch-name>

Kita juga dapat melakukan download terhadap modifikasi source code yang sudah ada di remote repository dengan command pull.

git pull origin <branch-name>

Dengan command ini, kita otomatis menyatukan (merge) modifikasi local dan yang ada pada remote repository. Jika kedua modifikasi tersebut tidak compatible satu sama lain, maka akan ada notifikasi bahwa ada conflict. Kita harus melakukan solve pada conflict tersebut kemudian commit kembali modifikasi yang kita lakukan. Kita juga dapat melakukan merge terhadap branch yang ada pada local repository dengan command

git merge <branch-name>

REBASE YOUR CODE

Untuk “menyatukan” kode antar branch dari GIT Version control, kita sudah mengenal command merge. Namun, ada cara lain yang dapat digunakan selain merge, yaitu rebase. Perbedaan dari kedua command tersebut adalah, jika kita menggunakan command merge, maka kita akan melakukan gabungan commit dari 2 branch yang akan di-merge kepada parent commit yang sama terhadap 2 branch tersebut. Namun, jika kita melakukan rebase maka kita melakukan commit changes dari suatu branch kepada branch yang menjadi tujuan rebase. Contoh code untuk melakukan seperti gambar diatas adalah sebagai berikut:

git checkout c4

git rebase c3

Maka akan pada branch c3 dilakukan perubahan yang dilakukan pada branch c4. Dengan begitu, kemungkinan conflict akan dikurangi.

Contoh implementasi GIT

Pada contoh ini, saya menggunakan sebuah repository lama yaitu testDocker. untuk melakukan cloning, maka saya melakukan clone https terhadap remote repository saya, dan untuk memastikan saya akan menggunakan command git status.

Karena saya ingin melakukan experimen, saya tidak ingin mengubah apapun di branch master. Maka dari itu, saya akan membuat branch baru dengan nama branch “experiment” dimana saya akan melakukan percobaan.

Setelah melakukan percobaan, maka saya ingin melakukan commit terhadap perubahan yang saya lakukan agar tersimpan oleh version control. Maka saya menggunakan command add dan commit. Kemudian saya melakukan push ke remote repository tempat saya melakukan clone sebelumnya.

Dapat dilihat bahwa terdapat keterangan jika kita melakukan push menuju branch yang belum ada pada remote repository, maka secara otomatis akan dibuat branch baru pada remote repository tersebut.

Command diatas adalah command-command umum yang digunakan untuk melakukan tracking pada modifikasi yang terjadi pada git repository. Namun, git masih memiliki banyak command yang dapat di-eksplor dengan command “git help” atau di GIT documentation.

Sekian penjelasan saya mengenai VCS dan GIT version control. Semoga bermanfaat!

Referensi :

--

--