Setelah memahami konsep dasar dari Git, kita akan memulai dengan bermain-main di local repository. Kita akan memulai dengan membuat repository, melakukan change, dan melihat history change.
Local vs Remote Repository? Intinya, local repository merupakan repository yang berada pada host machine kalian. Dalam hal ini, host machine tersebut adalah komputer kalian. Sebaliknya, remote repository adalah repository yang terdapat pada git server remote provider, seperti GitHub. Keduanya bisa dihubungkan.
Modul 2 ini berisi beberapa bahasan sebagai berikut.
Terdapat dua cara untuk menyiapkan local repository.
Untuk membuat repository baru, hal pertama yang perlu kalian lakukan adalah menginisiasi git di dalam direktori yang akan kalian jadikan repository. Direktori ini akan menjadi local repository.
git init
Kemudian, untuk membuat remote repository dari local repository yang telah kalian buat, gunakan perintah ini.
git remote add origin <remote_repository_URL>
Selain membuat repository baru, kita juga bisa menduplikasi repository yang sudah ada di git ke local repository kita dengan perintah berikut.
git clone <repository_url>
Terdapat tiga jenis change atau perubahan:
- Create: membuat file atau line baru, ditandai dengan warna hijau
- Edit: mengubah file atau sebuah line, ditandai dengan warna biru.
- Delete: menghapus file atau sebuah line, ditandai dengan warna merah.
Changes dapat dilihat menggunakan perintah berikut.
git diff
Setelah mengubah, mungkin kalian ingin menunda perubahan yang kalian lakukan pada repository. Untuk itu, git menyediakan perintah untuk menunda perubahan yang kalian buat.
Reset berguna untuk mengatur ulang HEAD (pointer ke commit terakhir) atau mengembalikan working directory ke kondisi commit sebelumnya. Biasa digunakan untuk menunda local private changes.
git reset HEAD <file_name> # Hapus perubahan di sebuah file
Revert berguna untuk membuat commit baru yang membatalkan perubahan oleh commit tertentu tanpa mengubah sejarah commit yang sudah ada. Sangat baik untuk menunda shared public changes.
git revert <commit_id>
Checkout sebenarnya berfungsi untuk berpindah branch, namun bisa juga digunakan untuk mengembalikan file di working directory ke versi pada commit tertentu.
git checkout <branch_name> # Pindah ke branch lain
git checkout <commit_id> -- <file> # Mengembalikan keadaan sebuah file ke versi pada commit tertentu
Terdapat juga kondisi di mana kalian mungkin sudah membuat perubahan pada branch kalian, namun ingin berpindah ke branch lain. Kalian bisa menggunakan perintah berikut untuk menyembunyikan perubahan di branch kalian dan beralih ke branch lain tanpa perlu melakukan commit.
git stash
Untuk mengembalikan perubahan yang disimpan sebelumnya dari stash ke working directory, kalian bisa menggunakan perintah berikut.
git stash pop
Bila perubahan yang kalian lakukan sudah fix, kalian dapat melakukan perintah-perintah berikut untuk memasukkan ke remote repository.
Git Add dilakukan untuk memilih dan menambahkan perubahan yang telah dibuat ke staging area. Berikut adalah beberapa cara melakukan Git Add.
git add . # Menambahkan semua perubahan ke staging area
git add <file_name> # Menambahkan perubahan di satu file ke staging area
Git Commit adalah perintah yang digunakan untuk menyimpan perubahan yang telah ditambahkan ke staging area ke dalam local repository sebagai sebuah commit. Commit merupakan langkah penting karena merupakan cara untuk merekam riwayat perubahan dalam repository. Setelah melakukan commit, perubahan yang dilakukan akan tercatat di riwayat repository kalian. Berikut adalah perintah untuk Git Commit.
git commit -m "commit message"
Kalian juga bisa mengubah commit terakhir atau menyatukan perubahan dalam commit terakhir tanpa membuat commit baru menggunakan perintah berikut.
git commit --amend
Kalian juga bisa melakukan commit untuk multiple author, yaitu menggunakan perintah berikut.
git commit --author="Nama kalian <email@kalian.com>, Nama 2 <nama@email.com>" -m "commit messages"
Git Push dilakukan untuk mengirim perubahan yang telah di-commit di local repository ke remote repository. Berikut adalah perintah untuk melakukan Git Push.
git push
Terdapat juga perintah untuk memaksa push ke remote repository dengan mengganti sejarah commit di remote repository dengan sejarah commit dari local repository, yaitu git push --force. Namun, hal ini dapat berbahaya karena menghilangkan pekerjaan orang lain yang bekerja berdasarkan sejarah commit dari remote repository. Untuk itu, kalian bisa menggunakan perintah berikut untuk melakukan push paksa secara aman, yaitu dengan mendapat peringatan bila orang lain telah melakukan push berdasarkan remote repository.
git push --force-with-lease
Penting: pastikan kalian telah berada di branch yang benar sebelum melakukan push, ya!
Selain mempermudah pekerjaan kolaborasi, git juga dapat dimanfaatkan untuk dokumentasi. Hal ini perlu dilakukan untuk mempermudah teman kerja kita memahami perubahan yang kita lakukan di repository. Salah satu cara mendokumentasikan pekerjaan kita adalah menggunakan conventional commit messages.
Format commit dalam conventional commit messages adalah sebagai berikut.
<type>(<optional scope>): <description>
| Tipe | Deskripsi |
|---|---|
feat |
Perubahan berupa penambahan atau penghapusan sebuah fitur. |
fix |
Bug fixing, diikuti deskripsi mengenai bug. |
docs |
Memperbarui dokumentasi (README.md) |
style |
Mengubah style kode tanpa mengubah logika dalam kode. |
chore |
Menginstall atau memperbarui dependensi. |
refactor |
Mengubah pendekatan kode, namun dengan hasil yang sama. |
test |
Menambahkan atau mengoreksi tes. |
Bersifat opsional, hanya berguna untuk menambah informasi kontekstual. Contoh: docs(readme): update installation instructions.
Deskripsi bersifat mandatori, dan berisikan deskripsi singkat mengenai perubahan yang dilakukan. Biasanya menggunakan imperative, present tense. Misalnya, Update, bukan Updated atau Updates.
Branching adalah membuat branch (cabang) pekerjaan dari branch utama development dan melanjutkan pekerjaan kalian tanpa mengutak-atik branch utama.
Pada umumnya, terdapat dua branch, yaitu Master (atau Production) dan Development. Branch Development biasa digunakan untuk melakukan push dari para developer dan menggabungkan merge pull request. Kemudian, saat projek di branch Development telah siap dan stabil, barulah branch Development di-merge dengan branch Master. Branch Master biasanya dilindungi dari penulisan langsung oleh developer untuk mencegak perubahan yang tidak diinginkan.
Untuk membuat branch, digunakan perintah berikut.
git branch <nama_branch>
Untuk pindah ke branch lain, digunakan perintah berikut.
git checkout <nama_branch>
Untuk menghapus branch, digunakan perintah berikut.
git branch -D nama_branch
Kini kalian telah menguasai local repository yang ibaratnya adalah ruang kerja pribadi kalian. Berikutnya, kalian akan belajar mengenai kolaborasi tim dalam git.



