Membatalkan Kesalahan: restore, reset, revert — dengan Benar dan Berbahaya
Salah satu topik yang paling banyak dicari dalam wawancara dan pekerjaan nyata adalah cara membatalkan apa yang telah dilakukan. Kita akan membahas tiga alat dengan 'kedalaman' pembatalan yang berbeda dan fokus pada yang terpenting: menunjukkan skenario spesifik di mana reset --hard merusak kerja tim, sementara revert adalah alternatif yang aman. Keputusan baik dan buruk — dengan konsekuensi nyata.
- Anda akan dapat dengan percaya diri membatalkan perubahan di setiap tahap: di direktori kerja, di indeks, dan di riwayat commit.
- Anda akan memahami perbedaan mendasar antara reset dan revert dan tahu dalam situasi mana masing-masing tepat digunakan.
- Anda akan belajar menghindari kesalahan umum yang dilakukan pemula saat membatalkan perubahan di repositori tim.
Simula ng leksyon
Git restore: Tombol Undo untuk File
- Git restore — membatalkan perubahan yang belum di-commit
- Bekerja seperti tombol “undo” di editor kode
- Aman — tidak mengubah riwayat commit
- Mengembalikan file ke kondisi terakhir yang tersimpan
Bayangkan Anda tidak sengaja menyimpan file yang masih mengandung kesalahan, lalu ingin mengembalikan semuanya seperti semula. Git restore berfungsi seperti tombol undo ajaib: mengembalikan file ke kondisi terakhir yang sudah di-commit. Berbeda dari perintah pembatalan lain, restore hanya bekerja pada perubahan yang belum di-commit dan aman untuk riwayat proyek Anda. Ini adalah alat pertama yang sebaiknya digunakan saat ada perubahan tidak sengaja dan Anda perlu memperbaiki situasi dengan cepat tanpa membahayakan riwayat perubahan.
Membatalkan Perubahan di Direktori Kerja
- git restore file.txt — mengembalikan file ke commit terakhir
- Membatalkan semua perubahan di direktori kerja
- Aman — perubahan masih bisa dikembalikan lewat editor
- Periksa status dengan git status sebelum melakukan restore
Misalnya, Anda sudah menghabiskan setengah jam memperbaiki file konfigurasi, tetapi kemudian menyadari bahwa arah perubahannya salah. Daripada membatalkan setiap perubahan satu per satu secara manual, jalankan git restore config.yml. File akan langsung kembali ke kondisi pada commit terakhir. Rasanya seperti menutup file tanpa menyimpan, tetapi dengan jaminan bahwa Anda kembali ke versi yang stabil.
# Demonstrasi pemulihan file
$ echo "Perubahan yang salah" > main.py
$ git status
$ git restore main.py
$ cat main.py
$ git status
Mengeluarkan File dari Indeks
- git restore --staged file.txt — mengeluarkan file dari indeks
- Menyimpan perubahan di direktori kerja
- Hati-hati: tanpa --staged, perubahan bisa hilang
- Selalu periksa git status sebelum menjalankan perintah
Salah satu kesalahan yang sering terjadi adalah tidak sengaja menambahkan file yang salah ke indeks. Misalnya, Anda menjalankan git add titik dan ikut memasukkan file konfigurasi sementara. Perintah git restore dengan opsi staged dan nama file settings.tmp akan mengeluarkan file tersebut dari indeks, tetapi tetap menyimpan semua perubahan di direktori kerja. Tanpa opsi staged, pekerjaan Anda bisa hilang. Karena itu, selalu periksa status dengan git status sebelum menjalankan restore. Sekarang Anda sudah bisa membatalkan perubahan sebelum commit. Lalu, bagaimana jika kesalahan sudah masuk ke riwayat? Di sinilah git reset berguna.
# Tidak sengaja menambahkan file ke indeks
$ git add config.tmp
$ git status
# Mengeluarkan dari indeks, tetapi menyimpan perubahan
$ git restore --staged config.tmp
$ git status
# Memastikan file masih ada di direktori kerja
$ ls -la config.tmp
Buong leksyon ay para sa subscription
24 pang slide sa buong bersyon.
Mabubuksan ang video, lahat ng slide, tala, pagsusulit, AI tutor, at interview pagkatapos mag-sign in at mag-subscribe.
Mag-sign in o magparehistro Mag-subscribeNilalaman ng leksyon
- Git restore: Tombol Undo untuk File
- Membatalkan Perubahan di Direktori Kerja
- Mengeluarkan File dari Indeks
- Git reset: Cara Kerja Mundurkan Riwayat
- reset --soft yang Aman: Perubahan Tetap di Indeks
- reset --mixed Standar: Perubahan Kembali ke Direktori Kerja
- reset --hard yang Berisiko: Penghapusan Permanen
- Reset: tiga mode, satu perintah
- git reset --soft: menulis ulang riwayat dengan aman
- Kapan menggunakan --mixed dan --hard
- Daftar periksa: reset mana yang harus dipilih?
- Mengapa kesalahan tidak bisa begitu saja dihapus?
- Cara kerja git revert dalam praktik
- Membatalkan beberapa komit sekaligus
- Reset: menulis ulang riwayat secara lokal
- Revert: Membatalkan Perubahan dengan Aman
- Apa yang Terjadi Saat Push: reset vs revert
- Mengapa git reset --hard Berbahaya
- Contoh Kehilangan Perubahan
- Cara Memulihkan Data
- Bahaya Pembatalan di Branch Bersama
- Pembatalan Aman dengan revert
- Urutan Tindakan yang Benar
- Kapan Menggunakan restore, reset, atau revert
- Aturan Bekerja dengan Riwayat Lokal dan Bersama
- Panduan Langkah demi Langkah Saat Ada Kesalahan
- Ringkasan dan Tugas: Jagoan Pembatalan
Mga artikulo tungkol sa araling ito
- Mga command ng Git: cheat sheet na may mga halimbawa para sa araw-araw
- git checkout, switch, at restore: kailan gamitin ang alin
- git reset at git revert: paano i-undo ang commit nang hindi nasisira ang history
- git reflog: paano ibalik ang nawalang commit at branch
- Git at GitHub: ano ang pagkakaiba at paano sila magkaugnay
Lahat ng leksyon ng kurso
- 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