Alat Lanjutan: rebase, stash, cherry-pick, dan tag
Beralih ke alat yang membedakan pengguna Git yang percaya diri dari yang hanya tahu dasar. Kita akan membahas rebase sebagai alternatif merge — menunjukkan kapan ia membuat sejarah lebih rapi, dan kapan ia berubah menjadi mimpi buruk. Tambahkan stash untuk 'menyimpan sementara' pekerjaan yang belum selesai, cherry-pick untuk memindahkan komit secara selektif, dan tag untuk menandai rilis.
- Anda akan dapat menggunakan git stash untuk beralih konteks antar tugas tanpa kehilangan perubahan.
- Anda akan memahami perbedaan antara rebase dan merge serta secara sadar memilih di antara keduanya berdasarkan konteks.
- Anda akan belajar mengedit riwayat komit dengan rebase interaktif dan menandai versi rilis dengan tag.
Phần đầu bài giảng
Masalah: Bagaimana Menyimpan Pekerjaan yang Belum Selesai
- Perbaikan bug mendadak mengganggu pekerjaan Anda
- Kode yang belum selesai tidak bisa dikomit
- Git stash — penyimpanan sementara perubahan
- Menyimpan file yang terlacak dan tidak terlacak
- Mengembalikan direktori kerja ke keadaan bersih
Bayangkan: Anda sedang asyik mengerjakan fitur baru, lalu tiba-tiba ada perbaikan bug mendesak. Anda tidak ingin meninggalkan semuanya di tengah jalan, tetapi juga tidak bisa mengomit kode yang masih mentah. Untuk situasi seperti inilah git stash hadir — rak sementara digital Anda. Ini seperti menjeda permainan video: kemajuan saat ini tersimpan, dan Anda bisa mengerjakan hal lain. Saat kembali, semuanya akan persis seperti yang Anda tinggalkan, termasuk file yang tidak terlacak, jika Anda tidak lupa flag -u. Ini menyelamatkan Anda dari keharusan mengingat beberapa tugas sekaligus.
Menyimpan dan Melihat Perubahan
- git stash save — menyimpan perubahan ke penyimpanan
- git stash list — menampilkan daftar perubahan yang disimpan
- Setiap stash diberi ID unik
- stash@{0} — perubahan terakhir yang disimpan
- Penyimpanan menyimpan keadaan direktori kerja
Mari kita lihat cara kerja git stash dalam praktik. Perintah git stash save akan menyimpan semua perubahan di direktori kerja dan file yang sudah diindeks, mengembalikan Anda ke keadaan bersih. Hasil kerja Anda tidak akan hilang — mereka akan masuk ke penyimpanan khusus. Untuk memastikan perubahan tersimpan, jalankan git stash list. Anda akan melihat daftar semua tugas yang ditunda dengan pengidentifikasi unik seperti stash koma nol. Ini sangat berguna saat Anda perlu cepat beralih antar tugas tanpa kehilangan kemajuan.
# Menyimpan perubahan saat ini
git stash save "WIP: New feature login form"
# Memeriksa daftar perubahan yang disimpan
git stash list
# Melihat isi stash terakhir
git stash show -p
Mengembalikan Perubahan yang Ditunda
- git stash pop — menerapkan dan menghapus stash terakhir
- git stash apply — menerapkan tanpa menghapus
- Mungkin terjadi konflik jika kode berubah
- Konflik diselesaikan secara manual
- stash@{n} — merujuk ke penyimpanan tertentu
Saatnya kembali ke pekerjaan yang ditunda, Anda punya dua pilihan. Perintah git stash pop akan menerapkan perubahan terakhir yang disimpan dan menghapusnya dari daftar stash. Jika Anda hanya ingin melihat perubahan atau menerapkannya beberapa kali, gunakan git stash apply — perubahan akan tetap ada di penyimpanan. Penting diingat: jika sejak stash disimpan ada perubahan pada kode, mungkin timbul konflik. Git akan memberi tahu masalahnya, dan Anda harus menyelesaikan konflik secara manual.
# Mengembalikan perubahan yang ditunda terakhir
git stash pop
# ATAU menerapkan tanpa menghapus
git stash apply
# Menerapkan stash tertentu berdasarkan indeks
git stash apply stash@{1}
Bài giảng đầy đủ dành cho thuê bao
Còn 25 slide nữa trong phiên bản đầy đủ.
Video, toàn bộ slide, ghi chú, bài kiểm tra, gia sư AI và phỏng vấn sẽ mở sau khi đăng nhập và đăng ký thuê bao.
Đăng nhập hoặc đăng ký Đăng ký thuê baoNội dung bài giảng
- Masalah: Bagaimana Menyimpan Pekerjaan yang Belum Selesai
- Menyimpan dan Melihat Perubahan
- Mengembalikan Perubahan yang Ditunda
- Kapan stash Bisa Berbahaya
- Bagaimana Cara Kerja Penggabungan Cabang
- Rebase: Menulis Ulang Riwayat Komit
- Kapan Menggunakan Apa: Skenario Praktis
- Bahaya Rebase: Apa yang Bisa Salah?
- Apa itu Rebase dan Mengapa Dibutuhkan?
- Praktik Rebase: Langkah demi Langkah
- Menyelesaikan Konflik saat Rebase
- Rebase Interaktif: Editor Riwayat Commit Anda
- Perintah Dasar Rebase Interaktif
- Praktik: Membuat Riwayat yang Sempurna
- Peringatan: Mengubah Riwayat yang Sudah Dipublikasikan
- Mengapa tidak boleh melakukan rebase pada cabang bersama
- Bagaimana menyelamatkan diri dari rebase yang gagal
- Perbaikan riwayat yang aman
- Mengapa cherry-pick diperlukan di Git
- Cara menggunakan git cherry-pick
- Kapan memilih: cherry-pick vs merge vs rebase
- Tag Git: penanda untuk commit penting
- Membuat tag anotasi dan tag ringan
- Mempublikasikan Tag ke Remote Repository
- Skenario: Hotfix di Tengah Pengembangan
- Integrasi Perubahan melalui Rebase dan Cherry-pick
- Kesalahan Umum dan Cara Menghindarinya
- Kesimpulan: Arsenal Git Master Baru Anda
Bài viết liên quan đến bài học này
- git rebase: cách hoạt động, chế độ tương tác và gộp commit
- Lệnh Git: bảng tra cứu với ví dụ dùng hằng ngày
- Git merge và rebase: nên chọn cái nào cho nhóm
- git stash: cách cất tạm thay đổi và lấy lại
- Câu hỏi về Git khi phỏng vấn: 25 câu hỏi và đáp án
Tất cả bài giảng của khóa học
- Pengantar: Git dari Nol hingga Pengembang yang Percaya Diri
- Apa Sebenarnya Git Itu — dan Kenapa Tanpanya Sulit Dapat Kerja
- Instalasi dan Konfigurasi: Menyiapkan Git untuk Pertama Kali
- Repositori Pertama: init, add, commit dan Keajaiban Indeks
- Membaca Riwayat: log, diff, show dan Navigasi ke Masa Lalu
- Cabang: Realitas Paralel untuk Kode Anda
- Membatalkan Kesalahan: restore, reset, revert — dengan Benar dan Berbahaya
- GitHub dan Repositori Jarak Jauh: Kode Anda di Awan
- Kerja Tim: Fork, Feature Branch, dan Pull Request
- Konflik Penggabungan: Jangan Panik — Pahami dan Selesaikan
- Proses Git di Tim Nyata: Alur Kerja Mana yang Dipilih
- Alat Lanjutan: rebase, stash, cherry-pick, dan tag
- Proyek Akhir: Simulasi Pengembangan Tim Nyata