Git Git Git

Norman Bintang
LEARNFAZZ
Published in
4 min readMar 20, 2019

Git adalah sebuah sebuah version control system yang dibuat untuk melacak perubahan terhadap perubahan source code. Selain membantu dalam melacak perubahan, git sangat membantu dalam pengembangan aplikasi dalam tim.

Dalam pengerjaan PPL, tim kami menggunakan git. Berikut urutan hal-hal yang saya lakukan dalam pengembangan sebuah fitur.

  1. Mengunduh repository

Mengunduh repository dapat dilakukan dengan git clone https://url-repository/proyek.git . Perintah ini cukup dijalankan sekali saja, yaitu di awal pengembangan proyek.

2. Membuat branch baru

Pengembangan fitur / PBI dilakukan pada branch terpisah. Untuk itu setiap pengembangan PBI perlu membuat branch baru. Dapat dilakukan dengan git checkout -b new_branch source_branch. Karena branch fitur yang dibuat harus berasal dari staging, maka perintah yang dilakukan git checkout -b US-[no]-[name] staging.

3. Pengembangan aplikasi

Pengembangan aplikasi dilakukan seperti biasa. Di tahap ini bebas untuk membuat, mengedit, atau menghapus file yang ada.

4. Mengecek file-file yang berubah

Setelah selesai mengembangkan aplikasi, saya melihat file-file apa saja yang berubah dengan melakukan perintah git status

git status

Dari perintah tersebut terlihat saya menghapus file course.go, mengubah user.go, dan menambahkan post.go

Jika bingung kenapa post.go berada pada Untracked files, ini karena file tersebut baru dibuat yang berarti belum pernah ditrack oleh git.

Jika saya ingin melihat lebih detail perubahan-perubahan pada setiap filenya, saya menjalankan perintah git diff

git diff

Dari sana terlihat bahwa saya menghapus course.go dan pada user.go, saya mengubah attribute dari ID yang bertipe int64 menjadi id bertipe int. Ingat, git diff hanya menampilkan perubahan dari file-file yang sudah ditrack sebelumnya.

5. Memasukkan file yang saya kerjakan ke staging area

Sebentar, apa itu staging area?

sumber: https://git-scm.com/about/staging-area

Staging area adalah wilayah di tengah-tengah antara working directory dan repository. Ini dapat dimanfaatkan jika kita tidak ingin menyimpan semua perubahan yang ada, misalkan karena pekerjaan pada file lain belum benar-benar selesai.

Menambahkan file ke staging area dapat dilakukan dengan git add nama-file

git add

Dari keluaran git status yang baru terlihat changes to be committed.

Misalkan tidak sengaja menambahkan file yang tidak diinginkan, maka dapat dikeluarkan dari staged area dengan git reset HEAD nama-file

git reset HEAD hanya mengeluarkan file dari staged area, perubahan-perubahan yang dilakukan tetap tersimpan pada working directory.

git checkout HEAD juga dapat digunakan untuk mengeluarkan file dari staged area. Bedanya, git checkout HEAD juga membuang semua perubahan-perubahan yang telah dibuat. Anda harus berhati-hati dalam menjalankan perintah ini.

6. Melakukan commit

Melakukan commit berarti menyimpan perubahan ke dalam repository. Dapat dilakukan dengan perintah git commit. Tetapi saya biasanya menggunakan git commit -m “commit message”

git commit

Setelah dilakukan commit, file post.go tidak muncul lagi di keluaran git status.

7. Mengupload pekerjaan yang dilakukan ke remote repository agar bisa dilihat oleh tim yang lain.

Mengupload pekerjaan dapat dilakukan dengan perintah git push origin nama_branch. Hal yang nanti akan dilakukan terhadap pekerjaan kita adalah dimerge ke branch staging. Agar bisa dimerge ke branch origin/staging, kita perlu merge branch origin/staging ke branch kita di lokal terlebih dahulu. Ini dapat dilakukan dengan perintah git pull origin staging.

Terkadang, sesama anggota tim bisa melakukan perubahan pada file yang sama. Maka merge tidak bisa dilakukan secara otomatis. Terjadi sesuatu yang disebut merge conflict.

merge conflict

Kita harus menyelesaikan conflict terlebih dahulu sebelum melakukan merge.

merge conflict

Dari sana terlihat bahwa terdapat anggota tim lain yang menambahkan baris pada posisi yang sama. Untuk menyelesaikan conflict, saya menggunakan VSCode karena terdapat fitur untuk memilih perubahan mana yang diinginkan.

Apabila conflict telah diselesaikan, lakukan commit terhadap merge tersebut. Setelah itu push branch yang dibuat ke remote repository. Dapat dilakukan dengan perintah git push origin nama_branch.

8. Membuat merge request

Tahap sebelumnya saya melakukan push ke branch sendiri, belum dimerge ke staging. Untuk itu perlu dibuat merge request. Sebenarnya git mengizinkan kita untuk melakukan merge di local lalu dipush ke remote repository. Tetapi hal ini harus dihindari karena kita tidak bekerja sendiri. Pada tahapan merge request, tim lain bisa melihat apa saja yang telah dilakukan dan memberikan review atau approval.

Jika terdapat review dan harus dilakukan perubahan, maka ulangi dari langkah nomor 3.

Jika telah mendapat approval, maka bisa dilakukan merge ke branch staging dan tugas untuk pekerjaan tersebut selesai :)

--

--