Git

Raul Arrafi Delfarra
3 min readNov 5, 2021

Pengembangan perangkat lunak pada umumnya memerlukan kolaborasi antar anggota tim pengembangnya. Kolaborasi tersebut tentunya perlu dilakukan secara fleksibel dan mudah agar perangkat lunak yang dikembangkan bisa mencapai potensi maksimalnya. Hal yang bisa membuat semua itu terealisasikan adalah Git.

Pengertian Git

Git merupakan sebuah perangkat lunak version control yang paling banyak digunakan oleh developer saat ini. Fungsinya adalah untuk menyimpan semua perubahan terkait sebuah berkas dari awal pengaksesannya sehingga tracking terkait berkas tersebut bisa mudah untuk dilakukan. Selain itu, Git juga memungkinkan developer untuk mengakses dan mengubah berkas tersebut secara paralel sehingga pekerjaan yang dilakukan oleh orang lain bisa tidak terganggu dan confict juga bisa dihindarkan.

Panduan Dasar Git

  • Membuat repositori baru:
git init
  • Menyalin repositori yang diinginkan ke penyimpanan lokal:
git clone <link_repository>
  • Menambah suatu perubahan baru ke Index:
git add <filename> or git add .
  • Membuat commit terkait perubahan yang telah ditambahkan ke HEAD:
git commit -m "Commit message"
  • Mengunggah perubahan yang telah dicommit di HEAD ke branch yang diinginkan di remote repository:
git push origin <nama_branch>
  • Membuat dan sekaligus pindah ke branch yang baru:
git checkout -b <nama_branch>
  • Memindahkan branch:
git checkout <nama_branch>
  • Menghapus branch:
git branch -d <nama_branch>
  • Mengupdate repositori lokal dari commit terbaru suatu branch di remote repository:
git pull origin <nama_branch>
  • Menggabungkan suatu branch ke branch sendiri:
git merge <nama_branch>
  • Melihat semua perubahan yang telah dilakukan di repositori:
git log
  • Membuat commit baru yang mengundo perubahan dari commit yang sebelumnya dengan tidak merubah history dari repositori:
git revert
  • Mengundo perubahan dari commit yang sebelumnya dan merubah history dari repositori:
git reset
  • Memeriksa pengaturan dari Git:
git config --list
  • Memeriksa status dari repositori lokal:
git status

Penerapannya di Tim Andromeda

Metode manajemen kode yang digunakan digunakan di PPL tahun ini adalah Gitlab Flow. Gitlab flow menggunakan konsep branches yang lebih sederhana dibandingkan dengan Git Flow. Dalam Gitlab Flow ada 2 proses utama, yaitu Development Process dan Production release.

  • Development Process

Ada 2 tipe branches utama pada proses development menggunakan Gitlab Flow, yaitu master/main branch dan development/feature branch. Master/main branch merupakan branch default dan utama dari sebuah proyek yang menyimpan fitur-fitur terbaru yang dikembangkan di development/feature branch yang sudah melalui proses Merge Request (MR) dan code review. Selanjutnya, development/feature branch adalah branch yang digunakan untuk mengembangkan fitur-fitur yang baru.

Berikut merupakan tahapan yang dilakukan tim Andromeda dalam melanjutkan pengembangan aplikasi IGRI:

  1. Menggunakan branch bernama staging untuk digunakan sebagai master/main branch yang selanjutnya semua commit di branch ini akan dideploy.
  2. Membuat development/feature branch yang update terhadap master/main branch dan harus menggunakan penamaan yang sudah disepakati sebelumnya, tidak digunakan terlalu lama sebelum melakukan Merge Request (MR) ke master/main branch, dan proses pengembangan aplikasi di dalamnya harus mengimplementasikan TDD dengan commit message yang singkat dan deskriptif.
  3. Melakukan merging dari development/feature branch ke master/main branch ketika pengembangan fitur sudah selesai dilakukan dengan melakukan Merge Request (MR). Selanjutnya, code review dilakukan oleh anggota tim yang lain dan ketika sudah diapprove, merge dilakukan dengan opsi squash commit. Terakhir, ketika setiap Sprint sudah selesai dan semua development/feature branch pada Sprint tersebut sudah dimerge ke master/main branch, presentasi terkait fitur-fitur yang dikembangkan di Sprint tersebut dilakukan di sprint review.
  • Production release

Production branch digunakan untuk merilis kode yang digunakan dalam pengembangan aplikasi ke pengguna dan mendeploy semua perubahan terbaru ke server production ketika semua fitur yang ada di master/main branch sudah siap untuk dirilis dan merge ke production branch telah dilakukan. Perubahan nama branch perlu dilakukan untuk memudahkan tracking versi yang digunakan oleh pengguna. Production branch bisa diganti menjadi release branch dan nama-nama branch diganti menjadi released version.

Branch-branch yang telah dirilis lebih baik hanya melalui proses bugfix yang bisa dilakukan dengan membuat MR dan melakukan git cherry pick ke branch yang menjadi tujuan rilisnya. Selain itu, MR juga bisa dilakukan dari bugfix branch ke release branch ketika cherry picking dari master/main branch ke release branch tidak bisa dilakukan karena bugfix yang besar, kompleks, dan tidak berlaku di release branch yang lain. Industri saat ini menggunakan konsep develop/staging > main/master, sedangkan Gitlab Flow menggunakan konsep main/master > production/release yang sebenarnya hanya memiliki perbedaan pada penamaan dari branchnya saja.

Referensi

GitHub Guides. (2020, July 24). Git Handbook. Retrieved November 4, 2021, from https://guides.github.com/introduction/git-handbook/

--

--