Stash: Menyimpan Pekerjaan Sementara

Menitipkan perubahan yang belum selesai agar bisa berpindah branch, lalu mengambilnya kembali.

Part 15 dari 22 ± 30 menit Gratis

Skenario klasik

Kamu sedang setengah jalan mengerjakan fitur dan kodenya belum layak di-commit. Tiba-tiba ada bug mendesak di main yang harus diperbaiki sekarang. Berpindah branch dengan perubahan menggantung bisa gagal:

error: Your local changes to the following files would be overwritten by checkout:
        keranjang.html
Please commit your changes or stash them before you switch branches.
Aborting

Meng-commit kode setengah jadi bukan pilihan bagus. Solusinya: git stash — menyimpan perubahan ke "laci" sementara dan mengembalikan working directory ke bersih.

Perintah stash

git stash push -m "keranjang setengah jadi"   # simpan (beri nama agar mudah dikenali)
git stash list                                 # lihat isi laci
git stash pop                                  # ambil yang paling atas, lalu hapus dari laci
git stash apply                                # ambil tanpa menghapus dari laci
git stash drop                                 # buang entri teratas
git stash clear                                # kosongkan laci

git stash saja (tanpa push) juga bekerja dan menamai otomatis WIP on main: <hash> <pesan commit>.

Alur lengkap

git stash push -m "WIP keranjang"
git switch main
# ...perbaiki bug...
git commit -am "Perbaiki typo judul halaman utama"
git switch fitur-keranjang
git stash pop

Apa yang disimpan?

  • Secara default: perubahan pada berkas yang sudah dilacak (staged dan belum staged).
  • Berkas baru (untracked) tidak ikut — tambahkan -u (--include-untracked) bila perlu.
  • Berkas yang diabaikan .gitignore tidak ikut.

Menyimpan banyak stash

Laci bersifat tumpukan (stack): entri baru ada di atas (stash@{0}). git stash pop stash@{1} mengambil entri tertentu. Beri nama agar tidak lupa isi tiap entri.

Bila pop menimbulkan konflik

Jika kode di branch sudah berubah sehingga stash tidak bisa diterapkan bersih, Git menandai konflik seperti pada merge dan tidak menghapus entri stash. Selesaikan konfliknya, lalu git stash drop setelah yakin.

Stash bukan tempat penyimpanan jangka panjang

Stash mudah terlupakan. Untuk pekerjaan yang akan lama tertunda, lebih baik commit di branch sementara (wip/...) — itu juga ikut ter-backup saat di-push.

Praktikkan langsung, gratis

Tulis dan jalankan kode langsung di browser, dapatkan penilaian otomatis. Daftar gratis kapan saja untuk menyimpan progres dan meraih sertifikat.

Coba latihan sekarang, tanpa daftar
Bagikan: WhatsApp Facebook LinkedIn X