Đoạn xem trước bài giảng

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.

git rebase git stash git cherry-pick
Bạn sẽ học gì trong bài giảng này
  • 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ê bao

Nội dung bài giảng

  1. Masalah: Bagaimana Menyimpan Pekerjaan yang Belum Selesai
  2. Menyimpan dan Melihat Perubahan
  3. Mengembalikan Perubahan yang Ditunda
  4. Kapan stash Bisa Berbahaya
  5. Bagaimana Cara Kerja Penggabungan Cabang
  6. Rebase: Menulis Ulang Riwayat Komit
  7. Kapan Menggunakan Apa: Skenario Praktis
  8. Bahaya Rebase: Apa yang Bisa Salah?
  9. Apa itu Rebase dan Mengapa Dibutuhkan?
  10. Praktik Rebase: Langkah demi Langkah
  11. Menyelesaikan Konflik saat Rebase
  12. Rebase Interaktif: Editor Riwayat Commit Anda
  13. Perintah Dasar Rebase Interaktif
  14. Praktik: Membuat Riwayat yang Sempurna
  15. Peringatan: Mengubah Riwayat yang Sudah Dipublikasikan
  16. Mengapa tidak boleh melakukan rebase pada cabang bersama
  17. Bagaimana menyelamatkan diri dari rebase yang gagal
  18. Perbaikan riwayat yang aman
  19. Mengapa cherry-pick diperlukan di Git
  20. Cara menggunakan git cherry-pick
  21. Kapan memilih: cherry-pick vs merge vs rebase
  22. Tag Git: penanda untuk commit penting
  23. Membuat tag anotasi dan tag ringan
  24. Mempublikasikan Tag ke Remote Repository
  25. Skenario: Hotfix di Tengah Pengembangan
  26. Integrasi Perubahan melalui Rebase dan Cherry-pick
  27. Kesalahan Umum dan Cara Menghindarinya
  28. Kesimpulan: Arsenal Git Master Baru Anda

Bài viết liên quan đến bài học này

Tất cả bài giảng của khóa học

  1. Pengantar: Git dari Nol hingga Pengembang yang Percaya Diri
  2. Apa Sebenarnya Git Itu — dan Kenapa Tanpanya Sulit Dapat Kerja
  3. Instalasi dan Konfigurasi: Menyiapkan Git untuk Pertama Kali
  4. Repositori Pertama: init, add, commit dan Keajaiban Indeks
  5. Membaca Riwayat: log, diff, show dan Navigasi ke Masa Lalu
  6. Cabang: Realitas Paralel untuk Kode Anda
  7. Membatalkan Kesalahan: restore, reset, revert — dengan Benar dan Berbahaya
  8. GitHub dan Repositori Jarak Jauh: Kode Anda di Awan
  9. Kerja Tim: Fork, Feature Branch, dan Pull Request
  10. Konflik Penggabungan: Jangan Panik — Pahami dan Selesaikan
  11. Proses Git di Tim Nyata: Alur Kerja Mana yang Dipilih
  12. Alat Lanjutan: rebase, stash, cherry-pick, dan tag
  13. Proyek Akhir: Simulasi Pengembangan Tim Nyata