Menghapus File menggunakan Git / GitHub

115

Pertama, saya baru mengenal Git.

Saya menghapus banyak file secara lokal di Mac saya menggunakan Finder. Saya ingin file yang saya hapus tidak lagi ditampilkan di cabang saat ini, tetapi mereka melakukannya.

Adakah pengguna Git yang mengetahui perintah untuk memperbarui indeks?

Zack
sumber
Lihat juga stackoverflow.com/questions/492558/…
Petr Gladkikh

Jawaban:

226

Saya pikir ini akan menjadi cara yang lebih sederhana untuk melakukan apa yang Anda inginkan:

git add . -A 

Maka Anda hanya akan melakukan:

git commit -m "removed some files"

Seperti disebutkan di atas.

Samuel Mikel Bowles
sumber
Terima kasih. Dan saya baru saja menulis alias bashuntuk melakukan hal di atas. Luar biasa.
Zack
12
Apa fungsi bendera -A?
Kim Prince
1
@KimPrince - Menurut kernel.org , "-A --semua Suka -u, tetapi cocokkan <filepattern> dengan file di pohon kerja selain indeks. Itu berarti ia akan menemukan file baru serta staging yang dimodifikasi konten dan menghapus file yang tidak lagi berada di pohon kerja. "
j08691
3
@KimPrr git help addakan memberi tahu Anda apa -Aartinya dan mencantumkan semua sakelar lainnya juga.
Marcin Orlowski
1
Ini lebih dari sekadar menghapus file yang dihapus. Ia menambahkan semua file yang diubah dalam direktori jadi ini bukan jawaban yang memuaskan.
Alex
19

Anda dapat melihat file yang dihapus, yang masih 'dilacak' dengan:

git ls-files --deleted

Untuk menghapus file dari cabang, Anda dapat melakukan sesuatu seperti ini:

git ls-files --deleted -z | xargs -0 git rm

Dari man git-rm:

Hapus file dari indeks, atau dari pohon kerja dan indeks. git-rm tidak akan menghapus file dari direktori kerja Anda saja. (Tidak ada opsi untuk menghapus file 13 hanya dari pohon kerja namun tetap menyimpannya di indeks; gunakan / bin / rm jika Anda ingin melakukannya.)

Terakhir, untuk melakukan "penghapusan" lakukan sesuatu seperti:

git commit -m "removed some files"
miku
sumber
Maka Anda perlu melakukan perubahan -git commit -m "removed some files"
James Polley
17

Saya tidak tahu apakah ini telah ditambahkan ke git sejak jawaban sebelumnya, tetapi saya baru saja menggunakan

git add -u
git commit -m "Removed some files"

untuk mencapai hal yang sama.

Gareth
sumber
Ini berfungsi untuk kasus penggunaan yang terdaftar, tetapi ini tidak hanya menambah penghapusan file. Itu menambahkan semua file yang telah diubah dengan cara apa pun, jadi ini umumnya bukan cara yang baik untuk menghapus semua file yang dihapus kecuali itu satu-satunya perubahan yang Anda buat.
Alex
2
git filter-branch --force --index-filter 'git rm --cached --ignore-unmatch deletefile.name' --prune-empty --tag-name-filter cat -- --all
git commit -m "Removed deletefile.name"
git push origin master --force

Ganti deletefile.name dengan file yang akan dihapus. Untuk penjelasan mendetail yang mendetail, baca artikel bagus https://help.github.com/articles/remove-sensitive-data

Chawathe Vipul S
sumber