Perintah-Perintah Git yang Harus Kamu Ketahui Part 2

Jun 15, 2024

Perintah-Perintah Git yang Harus Kamu Ketahui Part 2

Ini adalah seri lanjutan dari artikel sebelumnya yang membahas tentang perintah-perintah Git yang tidak boleh terlewatkan. Selain perintah dasar yang telah disebutkan di seri sebelumnya, ada beberapa perintah Git lain yang juga penting dan sering digunakan oleh software developer. Berikut adalah beberapa di antaranya:

11. git log

Perintah ini digunakan untuk melihat riwayat commit dalam repositori. Dengan git log, kita dapat melihat daftar commit yang telah dilakukan beserta pesan, penulis, dan tanggalnya.

git log

Untuk tampilan yang lebih singkat:

git log --oneline

12. git diff

Perintah ini digunakan untuk melihat perbedaan antara berbagai commit, branch, atau working directory. Ini sangat berguna untuk memahami perubahan yang telah dilakukan.

git diff

atau

git diff <commit-id-atau-branch>

13. git stash

Perintah ini digunakan untuk menyimpan sementara perubahan yang belum di-commit. Ini berguna saat kita perlu berpindah ke branch lain tetapi ingin menyimpan pekerjaan kita saat ini tanpa melakukan commit.

git stash

Untuk melihat daftar stashes:

git stash list

Untuk mengaplikasikan kembali perubahan yang di-stash:

git stash apply

Perintah ini akan menerapkan stash terbaru ke working directory tanpa menghapus stash dari daftar. Jika ingin menghapus stash setelah menerapkannya, kita bisa menggunakan:

git stash pop

14. git remote

Perintah ini digunakan untuk mengelola remote repository. Kita bisa menambahkan, menghapus, mengubah, atau menampilkan remote repository yang terhubung dengan repositori lokal.

git remote -v

untuk melihat remote repository yang ada, atau

git remote add <nama-remote> <url-repo>

untuk menambahkan remote repository baru.

git remote set-url <nama-remote> <url-baru>

untuk mengubah url remote repository.

15. git fetch

Perintah ini digunakan untuk mengambil perubahan dari remote repository tanpa langsung menggabungkannya dengan branch lokal. Ini memungkinkan kita untuk memeriksa perubahan terlebih dahulu.

git fetch <remote>

16. git reset

Perintah ini digunakan untuk mereset HEAD branch ke state sebelumnya. Ini bisa digunakan untuk membatalkan commit atau perubahan yang tidak diinginkan.

git reset --hard <commit-id>

atau untuk mengatur ulang staging area:

git reset <commit-id>

git reset dapat digunakan dengan berbagai opsi yang menentukan bagaimana reset mempengaruhi working directory dan staging area. Secara default, git reset (tanpa opsi apa pun) sama dengan git reset --mixed.

git reset --soft <commit>:

  • Mereset branch saat ini ke commit yang ditentukan.
  • Tidak mengubah staging area atau working directory. Perubahan tetap ada di indeks dan working directory seperti semula.
  • Umumnya digunakan ketika kita ingin membatalkan commit tetapi tetap menyimpan perubahan di staging area untuk commit baru.

git reset --mixed <commit> (default):

  • Mereset branch saat ini ke commit yang ditentukan.
  • Mengatur ulang staging area agar sesuai dengan commit yang ditentukan.
  • Tidak mengubah working directory. Perubahan tetap ada di working directory sebagai perubahan yang belum di-commit.
  • Ini berguna ketika kita ingin membatalkan perubahan di staging area tetapi tetap menyimpannya di working directory.

git reset --hard <commit>:

  • Mereset branch saat ini ke commit yang ditentukan.
  • Mengatur ulang staging area agar sesuai dengan commit yang ditentukan.
  • Mengatur ulang working directory sesuai dengan commit yang ditentukan, sehingga semua perubahan di working directory dan staging area akan dihapus.
  • Ini akan menghapus semua perubahan yang belum di-commit, membuat working directory dan indeks sesuai dengan commit yang ditentukan.

Summary

  • git reset --soft menyimpan perubahan di staging area.
  • git reset --mixed (default) mereset perubahan ke working directory.
  • git reset --hard menghapus semua perubahan di staging area dan working directory.

Gunakan git reset --hard dengan hati-hati, karena dapat menyebabkan kehilangan data jika perubahan belum di-commit atau disimpan di tempat lain.