Pertanyaan Menghapus beberapa file dari repositori Git yang telah dihapus dari disk


Saya memiliki repo Git yang saya hapus empat file dari menggunakan rm (tidak  git rm), dan status Git saya terlihat seperti ini:

#    deleted:    file1.txt
#    deleted:    file2.txt
#    deleted:    file3.txt
#    deleted:    file4.txt

Bagaimana cara menghapus file-file ini dari Git tanpa harus secara manual melalui dan menambahkan setiap file seperti ini:

git rm file1 file2 file3 file4

Idealnya, saya mencari sesuatu yang bekerja dengan cara yang sama git add . tidak, jika itu mungkin.


1227
2018-01-29 17:18


asal


Jawaban:


Untuk Git 1.x

$ git add -u

Ini memberitahu git untuk secara otomatis menampilkan file yang dilacak - termasuk menghapus file yang sebelumnya dilacak.

Untuk Git 2.0

Untuk menampilkan seluruh pohon kerja Anda:

$ git add -u :/

Untuk tahap hanya jalan saat ini:

$ git add -u .

2205
2017-09-10 00:13



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

mungkin apa yang Anda cari .. itu bekerja untuk saya ..


1335
2018-02-28 20:21



Kamu dapat memakai

git add -u

Untuk menambahkan file yang terhapus ke area stage, kemudian lakukan

git commit -m "Deleted files manually"

725
2018-01-29 17:25



Jika Anda hanya menjalankan:

git add -u

git akan memperbarui indeksnya untuk mengetahui bahwa file yang telah Anda hapus seharusnya benar-benar menjadi bagian dari commit berikutnya. Kemudian Anda dapat menjalankan "git commit" untuk memeriksa perubahan itu.

Atau, jika Anda menjalankan:

git commit -a

Secara otomatis akan mengambil perubahan ini (dan lainnya) dan melakukan mereka.

Memperbarui: Jika Anda hanya ingin menambahkan file yang terhapus, coba:

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

354
2017-09-10 00:15



Anda mungkin mencari -A:

git add -A

ini mirip dengan git add -u, tetapi juga menambahkan file baru. Ini kira-kira setara dengan hg addremove perintah (meskipun deteksi bergerak bersifat otomatis).


163
2018-01-29 18:10



Ke panggung hanya yang dihapus file:

for x in $(git status | grep deleted | awk '{print $2}'); do git rm $x; done

Atau (cara xargs):

git status | awk '/deleted/ {print $2}' | xargs git rm

Kamu bisa alias set perintah yang Anda pilih untuk digunakan nanti dengan nyaman.


92
2017-11-26 10:34



git rm test.txt

Sebelum atau setelah Anda menghapus file yang sebenarnya.


59
2017-09-10 00:13