Pengantar Sistem Kontrol Versi (VCS)
Sistem Kontrol Versi (Version Control System – VCS) adalah alat yang digunakan untuk mengelola dan melacak perubahan pada kode sumber proyek perangkat lunak. VCS memungkinkan pengembang untuk menyimpan riwayat perubahan, berkolaborasi dengan tim, dan mengelola berbagai versi dari kode sumber. Dengan menggunakan VCS, pengembang dapat kembali ke versi sebelumnya jika terjadi kesalahan, serta memudahkan kolaborasi dan integrasi kode dari berbagai kontributor.
Pengantar Git
Git adalah salah satu sistem kontrol versi yang paling populer dan kuat. Git adalah sistem kontrol versi terdistribusi yang memungkinkan setiap pengembang memiliki salinan lengkap dari repositori kode di mesin mereka sendiri. Ini memberikan fleksibilitas dalam mengelola perubahan kode, melakukan pengujian, dan mengatasi masalah secara independen.
Perintah Git Dasar
- git init
Perintah ini digunakan untuk menginisialisasi repositori Git baru. Ketika dijalankan dalam direktori proyek, git init akan membuat subdirektori .git yang berisi metadata repositori dan struktur file untuk melacak perubahan.
‘’’
git init
‘’’
- git clone
Perintah ini digunakan untuk membuat salinan lokal dari repositori Git yang ada. Biasanya digunakan untuk mendapatkan repositori dari server remote.
‘’’
git clone <url-repositori>
‘’’
- git add
Perintah ini digunakan untuk menambahkan perubahan file ke staging area, yaitu area persiapan sebelum melakukan commit. Misalnya, untuk menambahkan semua perubahan pada file, gunakan:
‘’’
git add .
‘’’
Untuk menambahkan file tertentu:
‘’’
git add <nama-file>
‘’’
- git status
Perintah ini menampilkan status file di repositori, menunjukkan file yang telah dimodifikasi, file yang belum di-staging, dan file yang siap untuk di-commit.
‘’’
git status
‘’’
- git diff
Perintah ini menunjukkan perbedaan antara file yang diubah dan versi sebelumnya. Ini berguna untuk melihat perubahan yang telah dilakukan sebelum melakukan commit.
‘’’
git diff
‘’’
- git commit
Perintah ini menyimpan perubahan yang telah di-staging ke dalam repositori dengan pesan commit. Pesan commit sebaiknya menjelaskan perubahan yang dilakukan.
‘’’
git commit -m “Pesan commit”
‘’’
- git notes
Perintah ini digunakan untuk menambahkan catatan tambahan pada commit tertentu. Catatan ini terpisah.
‘’’
git notes add -m “Catatan tambahan”
‘’’
- git restore
Perintah ini digunakan untuk mengembalikan file ke statusnya yang terakhir di-commit. Ini berguna jika Anda ingin membatalkan perubahan yang belum di-commit.
‘’’
git restore <nama-file>
‘’’
- git reset
Perintah ini digunakan untuk mengubah pointer HEAD dan staging area ke commit yang ditentukan. git reset dapat digunakan untuk membatalkan commit yang belum di-push.
‘’’
git reset –soft <commit-id>
‘’’
- git rm
Perintah ini digunakan untuk menghapus file dari repositori dan staging area. Setelah dihapus, file tidak akan ada lagi di repositori dan perubahan perlu di-commit.
‘’’
git rm <nama-file>
‘’’
- git mv
Perintah ini digunakan untuk memindahkan atau mengganti nama file di repositori. Git akan melacak perubahan ini sebagai operasi move atau rename.
‘’
git mv <file-lama> <file-baru>
‘’’
- git branch
Perintah ini digunakan untuk membuat, menghapus, atau menampilkan daftar cabang di repositori. Untuk membuat cabang baru:
‘’
git branch <nama-cabang>
‘’’
- git checkout
Perintah ini digunakan untuk berpindah antar cabang atau untuk mengembalikan file ke status dari commit.
‘’’
git checkout <nama-cabang>
‘’
- git switch
Perintah ini adalah alternatif modern untuk git checkout yang khusus digunakan untuk berpindah cabang. Perintah ini membuatnya lebih jelas dan lebih mudah digunakan.
‘’’
git switch <nama-cabang>
‘’’
- git merge
Perintah ini digunakan untuk menggabungkan perubahan dari satu cabang ke cabang aktif saat ini. Ini mengintegrasikan perubahan dari cabang lain ke dalam cabang yang sedang Anda kerjakan.
‘’’
git merge <nama-cabang>
‘’’
- git mergetool
git mergetool digunakan untuk mempermudah proses menyelesaikan konflik merge dengan menggunakan alat perbandingan (diff) eksternal dan alat penggabungan (merge) eksternal.
‘’’
git mergetool
‘’’
Ini akan membuka alat mergetool yang telah dikonfigurasi untuk membantu menyelesaikan konflik pada file yang mengalami merge.
- git log
git log digunakan untuk melihat riwayat commit dalam repositori. Perintah ini bisa sangat detail dan dapat disesuaikan dengan berbagai opsi untuk melihat informasi tertentu.
‘’’
git log
‘’’
Ini akan menampilkan daftar riwayat commit dalam repositori dengan informasi seperti hash commit, penulis, tanggal, dan pesan commit.
- git stash
git stash digunakan untuk menyimpan perubahan sementara yang belum di-commit, sehingga Anda bisa beralih ke pekerjaan lain tanpa harus melakukan commit.
‘’’
git stash,git stash list, git stash apply
‘’’
Ini akan menyimpan perubahan dalam working directory dan staging area ke dalam “stash” dan membersihkan working directory.
- git tag
git tag digunakan untuk memberi label atau penanda pada commit tertentu. Tag biasanya digunakan untuk menandai versi rilis.
‘’’
git tag v1.0
‘’’
Ini akan membuat tag v1.0 pada commit HEAD saat ini.
- git worktree
Git Worktree adalah fitur di Git yang memungkinkan Anda untuk memiliki beberapa working directory (worktrees) yang terhubung ke satu repositori Git. Fitur ini sangat berguna ketika Anda ingin bekerja pada beberapa cabang secara bersamaan tanpa harus terus menerus melakukan checkout antar cabang, atau ketika Anda ingin mengisolasi perubahan yang sedang Anda kerjakan dari cabang utama.
‘’’
git worktree add ../new-feature-branch new-feature
‘’’
Ini akan membuat direktori baru ../new-feature dan memeriksa new-feature-branch di dalamnya.
- git bisect
git bisect digunakan untuk menemukan commit tertentu yang menyebabkan bug atau masalah dalam repositori dengan menggunakan pendekatan pencarian biner.
‘’’
git bisect start
git bisect bad <commit>
git bisect good <commit>
git bisect log
git bisect reset
‘’’
Perintah ini akan memulai proses bisect untuk menemukan commit yang memperkenalkan bug.
- git blame
Git Blame adalah perintah yang digunakan untuk melihat informasi tentang siapa yang terakhir kali mengubah setiap baris dalam file tertentu di repositori Git. Ini sangat berguna untuk melacak perubahan spesifik pada baris kode dan mengetahui siapa yang bertanggung jawab atas perubahan tersebut.
‘’’
git blame README.md
‘’’
Ini akan menampilkan informasi tentang siapa yang mengubah setiap baris file README.md.
- git revert
Git Revert adalah perintah yang digunakan untuk membatalkan perubahan yang dilakukan oleh commit sebelumnya dengan cara membuat commit baru yang membalikkan perubahan tersebut. Ini berbeda dengan git reset, karena git revert tidak menghapus riwayat commit, melainkan menambahkan commit baru yang melakukan kebalikan dari perubahan sebelumnya.
‘’’
git revert a1b2c3d4
‘’’
Ini akan membuat commit baru yang membatalkan perubahan dari commit a1b2c3d4.
- git grep
git grep digunakan untuk mencari teks tertentu di seluruh file dalam repositori Git.
‘’’
git grep “TODO”
‘’’
Ini akan mencari kata “TODO” di semua file dalam repositori.
- git rebase
Git Rebase adalah perintah yang digunakan untuk memindahkan atau menerapkan ulang commit dari satu cabang ke cabang lain. Ini adalah cara yang efektif untuk merapikan riwayat commit Anda, menggabungkan perubahan dari cabang berbeda, atau mengatasi konflik merge dengan lebih bersih
‘’’
git rebase main
‘’’
Ini akan mengaplikasikan commit dari branch saat ini di atas commit dari branch main, bisa dicek dengan log sebelumnya.
- git cherry-pick
git cherry-pick digunakan untuk mengaplikasikan commit tertentu dari satu branch ke branch lain.
‘’’
git cherry-pick a1b2c3d4
‘’’
Ini akan mengambil commit a1b2c3d4 dan menerapkannya pada branch saat ini.
- git apply
Git Apply adalah perintah yang digunakan untuk menerapkan perubahan yang disimpan dalam bentuk patch ke dalam repositori Git. Patch adalah file teks yang berisi perbedaan (diff) antara versi file yang berbeda, dan git apply memungkinkan Anda menerapkan perubahan tersebut tanpa membuat commit otomatis, berbeda dengan git am yang juga membuat commit.
‘’’
git apply patch.diff
‘’’
Ini akan menerapkan perubahan dari file patch.diff ke working directory.
- git describe
Git Describe adalah perintah yang kuat untuk menghasilkan deskripsi singkat namun informatif tentang commit dalam repositori. Dengan informasi tentang tag terdekat, jumlah commit sejak tag, dan ID commit singkat, Anda mendapatkan gambaran yang lebih jelas tentang posisi commit dalam riwayat proyek Anda. Perintah ini sangat berguna dalam pengembangan berkelanjutan dan pelacakan versi, terutama ketika Anda bekerja dengan banyak tag dan perlu mengidentifikasi versi secara unik.
‘’’
git describe
‘’’
Ini akan menampilkan deskripsi commit saat ini dengan tag terbaru dan jumlah commit sejak tag tersebut.
- git shortlog
Git Shortlog adalah perintah di Git yang digunakan untuk menghasilkan ringkasan dari log commit dengan mengelompokkan commit berdasarkan penulis (author) dan menyusun pesan commit. Perintah ini sangat berguna untuk membuat changelog atau laporan ringkas mengenai kontribusi yang dibuat dalam repositori.
‘’’
git shortlog
‘’’
Ini akan menampilkan daftar ringkas commit, dikelompokkan berdasarkan penulis.
- git range-diff
Git Range-diff adalah perintah di Git yang digunakan untuk membandingkan dua rentang (range) commit. Perintah ini sangat berguna saat Anda ingin melihat perbedaan antara dua seri commit, misalnya, ketika Anda mengubah sejarah commit (seperti melalui git rebase) dan ingin mengetahui bagaimana perubahan tersebut dibandingkan dengan versi sebelumnya.
‘’’
git range-diff main~3 main
‘’’
Ini akan menampilkan perbedaan antara rangkaian commit dari tiga commit sebelum main hingga main.
Tertarik mengikuti training di ID-Networkers? Kami menyediakan berbagai pilihan training yang bisa kamu ikuti, klik disini untuk info lebih lanjut.
Penulis : Rafly Abdul Bay Haqqy