The Amazing Git!


Halo teman-teman sekalian!
Jangan bosen-bosen yaah dengan post saya yang ternyata makin banyak :( hahaha

Nah, kali ini saya ingin membicarakan hal yang sangat penting di PPL, bisa dibilang, kalau gak ada benda ini, team developer (bahkan dosen) juga akan kewalahan dalam menjalankan pengembangan. Ya, sesuai judulnya, yang ingin saya bahas ialah mengenai Git dan segala Flownya yang sangat amazing!

GIT

Git diciptakan oleh Linus Torvalds yang juga merupakan pembuat Linux. Git digunakan oleh tim pengembang untuk menyimpan perubahan source code, yang disebut juga sistem version control. Git dapat digunakan sendiri maupun untuk kolaborasi dengan team. Tools ini menawarkan menulis kode bersama dalam sebuah tim secara offline lalu menyatukan source code tersebut secara online melalui metode push dan pull. Ada banyak sekali layanan Git server, dari yg komersial hingga yg gratis dipakai oleh umum. Sebagai contoh yang ialah yang digunakan oleh developer team di PPL yaitu layanan Git server gratis, Gitlab.

Istilah-Istilah di Git
repository : database yang menyimpan semua history atau riwayat perubahan. 
snapshot : potret kondisi file dan folder pada saat tertentu. 
commit : snapshot yang disimpan di repository. 
branch : serangkaian commit yang berkaitan sehingga kalau digambar seperti garis lurus berisi banyak commit. Satu repository bisa berisi banyak branch. 
master : nama branch default yang diberikan git pada waktu kita membuat repository. Branch master ini tidak istimewa. Dia bisa dihapus dan direname sesuka hati.
head : ujung branch, commit terbaru di dalam branch. 
HEAD : head yang sedang aktif. Walaupun satu repository bisa memiliki banyak branch, tapi cuma satu yang aktif. 
working folder : folder berisi file dan folder tempat kita bekerja. Biasanya working folder berisi banyak file source code untuk aplikasi yang sedang kita buat. Git memantau working folder ini, dan bisa mengetahui file dan folder mana yang sudah berbeda dari posisi commit terakhir. Perbedaan atau perubahan ini bisa disimpan menjadi commit baru, atau dikembalikan ke kondisi sebelum diubah.
staging area : snapshot dari working folder yang akan kita simpan pada saat commit. Ini adalah fitur unik Git yang tidak dimiliki version control lain. Dengan adanya staging area, kita bisa memilih perubahan mana yang akan di-commit dan mana yang tidak. 


Operasi - Operasi Dasar
Init : digunakan untuk inisiasi git. Biasanya inisiasi dilakukan oleh pemimpin proyek. Anggota lain akan melakukan clone setelah pemimpin proyek melakukan inisiasi repository. Init dapat digunakan di proyek baru (masih kosong) atau di proyek yang sudah dikerjakan (sudah ada file source code). 
Clone : digunakan untuk menyalin repository dari remote repository ke local repository. 
Add : digunakan untuk menambahkan file ke staging area
Commit : digunakan untuk menyimpan perubahan kode di repository local. 
Push : Perintah push digunakan untuk mengirim commit dari local repository ke remote server. 
Checkout : digunakan untuk berpindah dari satu branch ke branch lain. Checkout juga digunakan untuk mengembalikan file yang diubah tapi belum dicommit ke versi sebelum diedit. 
Fetch : digunakan untuk menyamakan keadaan remote repo dengan local repo (mengupdate local repo). 
Merge : digunakan untuk menggabungkan branch. 
Pull : digunakan untuk menarik commit dari remote server ke lokal. Aslinya, pull ini melakukan fetch yang diikuti merge secara otomatis.

Nah, ada hal-hal yang unik yang saya pelajari nih, yaitu Pull Request dan Merge Request. 

Pull Request : Pull requests let you tell others about changes you've pushed to a repository on GitHub. Once a pull request is opened, you can discuss and review the potential changes with collaborators and add follow-up commits before the changes are merged into the repository.

Merge Request : Merge requests are useful to integrate separate changes that you've made to a project, on different branches.

Karena saya bingung, saya juga melakukan pencarian pada internet dan menemukan hal yang menarik berikut: 
"Merge or pull requests are created in a git management application and ask an assigned person to merge two branches. Tools such as GitHub and Bitbucket choose the name pull request since the first manual action would be to pull the feature branch. Tools such as GitLab and Gitorious choose the name merge request since that is the final action that is requested of the assignee. In this article we'll refer to them as merge requests."


0 komentar:

Post a Comment