Git Stash: Cara Menyimpan Perubahan Tanpa Commit

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 pull saat 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.

Leave a Reply

Your email address will not be published. Required fields are marked *