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?


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.


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"

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.


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

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.