Katakanlah saya punya file di repositori git saya foo
.
Misalkan sudah dihapus dengan rm
(tidak git rm
). Maka status git akan menunjukkan:
Changes not staged for commit:
deleted: foo
Bagaimana cara saya menghapus file individual ini?
Jika saya mencoba:
git add foo
Ia mengatakan:
'foo' did not match any files.
Jawaban:
Sejak Git 2.0.0,
git add
juga akan melakukan penghapusan file.Git 2.0.0 Documents - git-add
sumber
Gunakan
git rm foo
untuk menampilkan file untuk dihapus. (Ini juga akan menghapus file dari sistem file, jika belum pernah dihapus sebelumnya. Tentu saja, dapat dipulihkan dari git, karena sebelumnya sudah diperiksa.)Untuk melakukan tahap penghapusan file tanpa menghapusnya dari sistem file, gunakan
git rm --cached foo
sumber
--cache
flag untuk menghapus file hanya dari repositori, dan membiarkannya tidak tersentuh dalam filesystem.git status | grep 'deleted:' | cut -d':' -f2 | xargs -t -I {} git add -u "{}"
. Jawaban lain tampaknya menunjukkan cara mem-stage penghapusan file dengan benar (tetapi tidak bagaimana mem-stage file yang sudah dihapus). ps. yangxargs
perintah berbasis bekerja untuk saya pada Ubuntu 12.04, namun ketika saya secara manual melakukangit add -u deleted_file.txt
itu doens't pekerjaan. Git saya adalah 1.7.9.5git rm
dengan senang hati akan mem -stage file untuk dihapus walaupun sudah dihapus dari sistem file. Dan seperti komentar OP pada jawaban lain, mereka ingin membuat satu file spesifik yang sudah dihapus.git rm
belum menampilkan file yang sudah dihapus. Melempar kesalahan ini:fatal: pathspec '~.SLDASM' did not match any files
. Berikut layar dengan bukti: i.imgur.com/cKNKGGe.png i.imgur.com/1p9JdWF.png . Tangkapan layar pertama dengan jelas menunjukkan bahwa 2 file dihapus dan tidak dipentaskan, tangkapan layar kedua menunjukkan bahwa ketika saya mengetikgit rm "~$Box.SLDASM"
, ia melempar kesalahan ini.Meskipun itu benar untuk digunakan
git rm [FILE]
, atau Anda dapat melakukannyagit add -u
.Menurut
git-add
dokumentasi:Indeks akan di-refresh dan file akan dipentaskan dengan benar.
sumber
git add -A .
akan menambahkan semua perubahan, saya secara khusus ingin membuat satu file terhapus.git add -u FolderWithDeletedFiles/
dan itu melakukan apa yang saya inginkan, terima kasihUntuk mengatur semua file yang dihapus secara manual, Anda dapat menggunakan:
Untuk menambahkan alias ke perintah ini sebagai
git rm-deleted
, jalankan:sumber
unknown option `deleted)
for /F %I in ('git ls-files --deleted') do git add -u %I
untuk menambahkan semua file yang siap dihapus
terima kasih untuk memastikan
kamu harus baik untuk pergi
sumber
rm <file>
, tetapigit rm <file>
git version 2.15.2 (Apple Git-101.1)
.Kamu bisa menggunakan
git rm -r --cached -- "path/to/directory"
untuk membuat direktori yang dihapus.
sumber
Anda dapat menggunakan perintah ini
sumber
bagi yang menggunakan git 2.x + di PowerShell:
sumber