Perpustakaan skenario
Mulai dari sini
Setiap skenario adalah skrip perintah, bukan snapshot — dijalankan ulang saat dibuka, jadi keadaannya tidak mungkin berbeda dari apa yang perintahnya benar-benar lakukan. Semuanya berhenti tepat sebelum perintah yang menarik, dan menyebutkan namanya.
Branch fitur tertinggal di belakang main
feature-behind-mainBentuk paling umum. Setelah rebase, perhatikan hash setiap commit fitur berubah — bukan karena isinya berubah, tapi karena parent-nya berubah, dan parent ikut masuk ke hash.
Lalu coba
Buka di sandboxrebase main— Dua commit fitur akan ditulis ulang jadi objek baru; yang lama tetap di rak, memudar.Riwayat berantakan yang mau dirapikan
messy-historyTiga commit kecil yang sebaiknya jadi satu. Rebase interaktif menggabungkannya — dan menghasilkan objek baru, bukan mengubah yang lama.
Lalu coba
Buka di sandboxopen the interactive rebase panel— Ubah tiga langkah terakhir jadi pick + squash + squash.Branch yang sudah dipublikasikan
published-branchDi sini rebase adalah pilihan yang salah. Commit yang sudah dipegang orang lain tidak boleh ditulis ulang — pakai revert, yang menambah riwayat alih-alih mengubahnya.
Lalu coba
Buka di sandboxrevert HEAD~1— Bandingkan dengan `reset --hard HEAD~2`: yang satu aman untuk kolaborator, yang lain tidak.Reset --hard yang tidak disengaja
accidental-hard-resetSituasi yang bikin panik. Commit-nya tidak ke mana-mana: masih di store, masih disebut reflog, dan bisa diambil kembali dengan satu perintah.
Lalu coba
Buka di sandboxreset --hard HEAD@{1}— Lihat panel reflog: commit yang “hilang” ada di sana, memudar tapi utuh.Rebase branch yang sudah di-push
force-push-dangerBranch ini sudah ada di origin. Rebase menulis ulang commit-nya, jadi push berikutnya ditolak — dan memaksanya membuat commit lama di origin tidak lagi ditunjuk apa pun. Rekan yang sudah fetch tetap memilikinya; yang clone hari ini tidak akan pernah melihatnya.
Lalu coba
Buka di sandboxpush origin main— Akan ditolak, dan pesannya menyebut commit mana yang akan terlantar. Bandingkan dengan `push origin main --force`, lalu lihat panel origin.Rebase yang berkonflik
conflicting-rebaseDua branch mengubah baris yang sama. Rebase berhenti di tengah tanpa menggerakkan ref dan tanpa membuat objek — resolusi Anda yang menentukan hash commit hasilnya.
Lalu coba
Buka di sandboxrebase main— Selesaikan konflik di panel working tree, `add konfig.txt`, lalu `rebase --continue`.