Panduan Troubleshooting Git: Memahami Perbedaan git restore . dan git clean -fd
Git adalah alat yang luar biasa untuk mengatur versi kode, tapi juga sering bikin bingung, terutama saat muncul pesan seperti “Untracked files” atau “Changes not staged for commit”.
Yuk, kita bahas dengan santai tapi tetap rapi biar kamu ngerti alur logikanya dari dalam Git.
1. Konsep Dasar: Siklus Hidup File di Git
Setiap file dalam repository Git bisa berada di salah satu dari empat status utama:
| Status File | Arti | Ciri di git status |
Keterangan |
|---|---|---|---|
| Untracked | File baru yang belum dikenali Git | Untracked files: |
Belum pernah di-add, belum tercatat dalam riwayat Git |
| Tracked (Unmodified) | File sudah pernah di-add dan belum diubah | Tidak muncul di git status |
Sudah tersimpan di riwayat commit |
| Modified | File diubah setelah commit terakhir | Changes not staged for commit: |
Belum di-add, tapi sudah dikenal Git |
| Staged | File siap di-commit | Changes to be committed: |
Sudah di-add, belum di-commit |
Jadi, tiap kali kamu ubah file, Git akan mendeteksi statusnya berubah dari Tracked → Modified → Staged → Committed.
2. Apa Itu Untracked Files?
Untracked files adalah file yang:
-
Belum pernah di-add dengan
git add, -
Tidak termasuk di commit mana pun sebelumnya,
-
Tidak sedang di-ignore (kalau belum ditulis di
.gitignore).
Git akan menampilkan peringatan seperti ini:
Untracked files:
(use "git add <file>..." to include in what will be committed)
resources/views/feeder/kelas_kuliah.blade.php
Artinya: Git tahu file itu ada, tapi belum kamu suruh untuk disimpan dalam riwayat versi.
3. git restore . — Mengembalikan File yang Sudah Dikenal Git
Perintah ini digunakan untuk membatalkan perubahan pada file yang sudah di-track (pernah di-commit sebelumnya).
Git akan mengembalikan file ke versi terakhir dari commit yang aktif (biasanya HEAD).
git restore .
➡️ Efeknya:
-
Semua perubahan di file yang sudah di-track akan hilang.
-
Tapi tidak berpengaruh ke untracked files (file baru tetap ada).
📘 Contoh:
modified: app/Http/Controllers/FeederController.php
modified: routes/web.php
Setelah git restore ., kedua file itu akan kembali seperti commit terakhir.
4. git clean -n dan git clean -fd — Menghapus File yang Belum Dikenal Git
git clean digunakan untuk membersihkan file atau folder yang belum pernah di-track (belum di-add).
🔍 Cek dulu (tanpa hapus):
git clean -n
Git hanya menampilkan file/folder apa saja yang akan dihapus.
Ini aman — semacam “preview” sebelum kamu benar-benar bersih-bersih.
🚮 Hapus untracked files:
git clean -f
🚮 Hapus untracked files dan folder:
git clean -fd
⚠️ Catatan:
Perintah ini menghapus permanen file yang belum di-add, jadi pastikan kamu tidak sedang menyimpan kerjaan penting di situ.
5. Kapan Gunakan yang Mana?
| Kebutuhan | Gunakan | Penjelasan |
|---|---|---|
| Kamu ingin membatalkan perubahan di file lama (sudah di-commit) | git restore . |
Mengembalikan file ke versi commit terakhir |
| Kamu ingin menghapus file/folder baru yang belum pernah di-track | git clean -fd |
Menghapus file yang belum di-add |
| Kamu ingin memastikan dulu apa yang akan dihapus | git clean -n |
Mode “lihat dulu” sebelum menghapus |
6. Tanda-tanda File Belum Di-Add, Di-Commit, atau Di-Push
Tanda di git status |
Arti | Solusi |
|---|---|---|
Untracked files: |
File belum di-add | git add <file> |
Changes not staged for commit: |
File diubah tapi belum di-add | git add <file> |
Changes to be committed: |
Sudah di-add tapi belum di-commit | git commit -m "pesan" |
| Branch lokal ahead of origin | Sudah di-commit tapi belum di-push | git push origin master |
7. Rangkuman Singkat (Versi Cepat)
| Tujuan | Perintah |
|---|---|
| Batalkan semua perubahan tracked | git restore . |
| Lihat file untracked yang akan dihapus | git clean -n |
| Hapus file untracked | git clean -f |
| Hapus file & folder untracked | git clean -fd |
| Cek status semua perubahan | git status |
8. Kesimpulan
-
git restore .itu seperti tombol Undo untuk file lama yang sudah pernah di-commit. -
git clean -fditu seperti membersihkan sampah proyek: file baru yang belum pernah masuk Git. -
Gunakan
git clean -ndulu untuk mengecek, supaya tidak salah hapus. -
Kombinasi
git restore . && git clean -fdberguna saat kamu ingin mengembalikan repo ke kondisi bersih sama persis dengan versi di GitHub.
Kalimat penutup biar nyantol:
“Kalau
git restoreitu seperti ‘balikin yang sudah kenal’,
makagit cleanitu seperti ‘hapus yang belum dikenal’.” 😄

No comments:
Post a Comment