Saya pikir Anda mungkin bingung dengan konsep indeks , seperti komentar @CB Bailey:
Area pementasan adalah indeks.
Anda hanya dapat mempertimbangkan direktori pementasan dan indeks sebagai hal yang sama.
Jadi, sama seperti jawaban @Tim Henigan , saya kira:
Anda hanya ingin "membatalkan" git add
yang telah dilakukan untuk file itu.
Inilah jawaban saya:
Secara umum, ada dua cara untuk membatalkan operasi tahap , seperti jawaban lain yang telah disebutkan:
git reset HEAD <file>
dan
git rm --cached <file>
Tapi apa bedanya?
Asumsikan file telah dipentaskan dan ada di direktori kerja juga, gunakan git rm --cached <file>
jika Anda ingin menghapusnya dari direktori pementasan , dan simpan file dalam direktori kerja . Tetapi perhatikan bahwa operasi ini tidak hanya akan menghapus file dari direktori staging tetapi juga menandai file tersebut deleted
di direktori staging , jika Anda menggunakan
git status
setelah operasi ini, Anda akan melihat ini:
deleted: <file>
Ini adalah catatan untuk menghapus file dari direktori pementasan . Jika Anda tidak ingin menyimpan catatan itu dan hanya ingin membatalkan operasi tahap file sebelumnya, gunakan git reset HEAD <file>
saja.
-------- AKHIR JAWABAN --------
PS: Saya perhatikan ada jawaban yang disebutkan:
git checkout -- <file>
Perintah ini untuk situasi ketika file telah dipentaskan , tetapi file tersebut telah dimodifikasi dalam direktori kerja setelah dipentaskan, gunakan operasi ini untuk mengembalikan file dalam direktori yang berfungsi dari direktori staging . Dengan kata lain, setelah operasi ini, perubahan terjadi di direktori kerja Anda , BUKAN direktori pementasan Anda .