Saya membuat perubahan pada beberapa file saya di repo lokal saya, dan kemudian saya lakukan git add -A
yang saya pikir menambahkan terlalu banyak file ke area pementasan. Bagaimana saya bisa menghapus semua file dari area pementasan?
Setelah saya melakukan itu, saya hanya akan melakukannya secara manual git add "filename"
.
git status
sudah memberi tahu Anda apa yang harus dilakukan jika Anda ingin menghapus file.git add -p
ataugit add --patch
(semuanya sama). Bendera itu memungkinkan Anda untuk secara interaktif memilih file atau perubahan individu mana yang ingin Anda panggung - Anda kemudian bisa mendapatkan lebih banyak butiran halus dengan pekerjaan apa yang Anda sertakan dalam komit.Jawaban:
Anda dapat menghapus file dari indeks menggunakan
Sama seperti
git add
, Anda dapat menghapus stage file secara rekursif berdasarkan direktori dan sebagainya, jadi untuk unstage semuanya sekaligus, jalankan ini dari direktori root repositori Anda:Juga, untuk referensi di masa mendatang, output dari
git status
akan memberi tahu Anda perintah yang perlu Anda jalankan untuk memindahkan file dari satu negara ke negara lain.sumber
$ git reset HEAD -- .
menghasilkanfatal: Failed to resolve 'HEAD' as a valid ref.
Catatan bahwa saya tidak pernah melakukan komitmen apa pun; ini adalah yang pertamagit add
setelahgit init
git reset @
.git reset
?@
identik denganHEAD
.Menggunakan
untuk menghapus semua file yang dipentaskan.
sumber
git reset HEAD --
atau apakah ini hanya cara yang lebih ringkas untuk melakukan operasi yang sama?HEAD
secara default. Apa tujuan mereka--
di Andagit reset HEAD --
?git reset HEAD -- .
berbeda karena hanya me-reset file di direktori saat ini dan di bawah ini sementaragit reset
me-reset semua file dalam proyek.Jika Anda sudah melakukan banyak file yang tidak diinginkan, Anda dapat membatalkan stage dan memberi tahu git untuk menandainya dihapus (tanpa benar-benar menghapusnya) dengan
--cached
memberitahu itu untuk menghapus jalur dari pementasan dan indeks tanpa menghapus file itu sendiri dan-r
beroperasi pada direktori secara rekursif. Anda kemudian dapatgit add
file apa pun yang ingin Anda lacak.sumber
rm
membatalkan tahapan semua file.--cached
benar-benar menghentikan pelacakan file yang sudah Anda komit. Jadi file tersebut sebenarnya tidak dihapus, tetapi git berpikir itu. Saya sudah mengklarifikasi hal ini dalam jawaban saya.Anda bisa menggunakannya
kemudian tambahkan file spesifik yang Anda inginkan
sumber
git status
akan memberi tahu Anda direktori kerja bersih - kebohongan!git clean -df
melakukan pekerjaan, terima kasih.git clean -df
akan menghapus file secara permanen. Pada sistem mirip UNIX, ia akan memanggilunlink()
dan file yang dihapus tidak akan dapat dipulihkan.Seperti disebutkan dalam jawaban lain, Anda harus menggunakan
git reset
. Ini akan membatalkan tindakangit add -A
.Catatan:
git reset
setara dengangit reset --mixed
yang melakukan inisumber
git reset filenameToNotCommit
Sekarang di v2.24.0 menyarankan
untuk menghapus file.
sumber
Anda dapat mengatur ulang area pementasan dengan beberapa cara:
Setel ulang HEAD dan tambahkan semua file yang diperlukan untuk check-in lagi seperti di bawah ini:
sumber
Untuk menghapus semua file dari penggunaan area stage -
git reset
Untuk menghapus penggunaan file tertentu -
git reset "File path"
sumber
menggunakan
Ini akan menghapus semua file dari area stage
sumber
Jika file yang tidak diinginkan ditambahkan ke area pementasan tetapi belum dilakukan, maka reset sederhana akan melakukan pekerjaan:
Untuk hanya menghapus perubahan yang tidak bertahap di direktori kerja saat ini, gunakan:
sumber
Gunakan "
git reset HEAD <file>...
" untuk menghapus stage filsmis: untuk unstage semua file
untuk menghapus satu file
sumber
Saya mencoba semua metode ini tetapi tidak ada yang berhasil untuk saya. Saya menghapus file git menggunakan
rm -rf .git
formulir repositori lokal dan kemudian lagi melakukangit init
dangit add
dan perintah rutin. Itu berhasil.sumber
Cara terbaik untuk membatalkan file Anda yang sudah ada di area pementasan adalah git reset --hard yang membawa file bertahap Anda kembali. Hati-hati sekarang, itu akan menghapus perubahan bertahap dan tidak bertahap.
sumber
--hard
menghapusnya selamanya.