Anda sedang mengerjakan fitur baru ketika tiba-tiba rekan kerja meminta Anda memperbaiki bug mendesak di branch lain. Kodenya belum selesai, jadi belum layak di-commit. Tetapi Git menolak pindah branch karena ada perubahan yang belum disimpan. Di sinilah git stash berguna. Perintah ini menyimpan perubahan Anda sementara, lalu mengembalikan folder kerja ke kondisi bersih.
Dalam artikel ini, kita akan membahas pengertian git stash, 7 perintah pentingnya, dan kesalahan yang sering terjadi.
Apa Itu Git Stash?
Git stash adalah fitur Git untuk menyimpan perubahan yang belum di-commit ke dalam sebuah tempat penyimpanan sementara. Setelah itu, working directory Anda kembali bersih seperti commit terakhir. Anda bisa berpindah branch, menarik pembaruan, atau memperbaiki bug. Kapan pun siap, Anda bisa memanggil kembali perubahan tadi.
Bayangkan stash sebagai laci. Anda memasukkan pekerjaan yang belum selesai ke dalamnya, mengerjakan hal lain, lalu mengambilnya lagi nanti. Dokumentasi lengkapnya tersedia di halaman resmi git stash.
Kapan Git Stash Dipakai?
Git stash paling berguna dalam situasi berikut:
- Anda perlu pindah branch, tetapi pekerjaan belum siap di-commit.
- Anda ingin menjalankan
git pullsaat masih ada perubahan lokal. - Ada bug mendesak yang harus diperbaiki lebih dulu.
- Anda ingin mencoba sesuatu di kode bersih tanpa kehilangan pekerjaan sebelumnya.
- Anda salah mengerjakan perubahan di branch yang keliru.
7 Perintah Git Stash yang Perlu Anda Ketahui
1. Menyimpan Perubahan dengan Pesan
Perintah dasarnya adalah git stash. Namun, sebaiknya tambahkan pesan agar mudah dikenali nanti:
bash
git stash push -m "fitur login setengah jadi"
Perintah ini menyimpan semua perubahan pada file yang sudah dilacak (tracked). Tanpa pesan, Git hanya memberi label otomatis yang sulit dibedakan.
2. Melihat Daftar Stash
Untuk melihat semua stash yang tersimpan, jalankan:
bash
git stash list
Hasilnya kurang lebih seperti ini:
stash@{0}: On main: fitur login setengah jadi
stash@{1}: On main: perbaikan tampilan navbar
Stash terbaru selalu berada di posisi stash@{0}.
3. Melihat Isi Stash
Sebelum mengembalikan, Anda bisa mengintip isinya:
bash
git stash show -p stash@{0}
Opsi -p menampilkan perubahan baris demi baris. Tanpa opsi ini, Git hanya menampilkan ringkasan file.
4. Mengembalikan Stash dengan Apply
Perintah ini mengembalikan perubahan, tetapi stash tetap tersimpan:
bash
git stash apply stash@{0}
Cara ini aman saat Anda ingin menerapkan perubahan yang sama ke beberapa branch.
5. Mengembalikan Stash dengan Pop
Pop bekerja seperti apply, tetapi menghapus stash setelah berhasil dikembalikan:
bash
git stash pop
Jadi, gunakan pop jika Anda yakin tidak membutuhkan stash itu lagi. Sebaliknya, pilih apply jika ingin menyimpannya sebagai cadangan.
6. Menghapus Stash
Untuk menghapus satu stash tertentu:
bash
git stash drop stash@{1}
Jika ingin menghapus semuanya sekaligus:
bash
git stash clear
Berhati-hatilah dengan clear, karena stash yang terhapus sulit dipulihkan.
7. Menyimpan File Baru (Untracked)
Secara bawaan, git stash tidak ikut menyimpan file baru yang belum pernah ditambahkan ke Git. Gunakan opsi -u agar file tersebut ikut tersimpan:
bash
git stash push -u -m "termasuk file baru"
Ini kesalahan yang sering membuat pemula bingung. File baru mereka tetap muncul padahal sudah di-stash.
Contoh Alur Kerja Git Stash
Berikut skenario sederhana dari awal sampai akhir:
bash
# 1. Simpan pekerjaan yang belum selesai
git stash push -u -m "form registrasi"
# 2. Pindah ke branch lain dan perbaiki bug
git switch hotfix/bug-login
# ...perbaiki, commit, dan push...
# 3. Kembali ke branch semula
git switch fitur/registrasi
# 4. Kembalikan pekerjaan Anda
git stash pop
Dengan alur ini, tidak ada pekerjaan yang hilang dan riwayat commit tetap rapi.
Kesalahan Umum Saat Memakai Git Stash
Lupa memberi pesan. Setelah beberapa hari, Anda tidak akan ingat isi stash@{3}. Karena itu, biasakan memakai -m.
Menumpuk terlalu banyak stash. Stash dirancang untuk penyimpanan jangka pendek. Jika pekerjaan Anda butuh waktu lama, buat branch baru dan commit saja.
Terjadi konflik saat pop. Jika file yang sama berubah di branch tujuan, Git akan menandai konflik. Selesaikan konfliknya secara manual, lalu hapus stash dengan git stash drop.
Salah mengira file baru ikut tersimpan. Seperti dijelaskan di atas, tambahkan -u untuk file yang belum dilacak.
Alternatif: Stash ke Branch Baru
Jika stash sudah lama dan sulit digabung, Anda bisa langsung mengubahnya menjadi branch:
bash
git stash branch fitur-baru stash@{0}
Perintah ini membuat branch baru dari commit tempat stash dibuat, lalu menerapkan stash tersebut. Setelah berhasil, stash otomatis dihapus.
Kesimpulan
Git stash adalah penyelamat saat Anda harus berpindah konteks tanpa membuat commit setengah jadi. Dengan tujuh perintah di atas, Anda bisa menyimpan, melihat, mengembalikan, dan menghapus stash dengan percaya diri. Mulailah dari git stash push -m dan git stash pop, lalu pelajari opsi lain seiring kebutuhan. Biasakan juga memberi pesan pada setiap stash supaya mudah ditelusuri.