tidak dapat menghapus file yang benar-benar ada - fatal: pathspec ... tidak cocok dengan file mana pun
Saya memiliki file di bawah kontrol git yang tidak akan dihapus. Perintah yang gagal adalah:
$ git rm .idea/workspace.xml
fatal: pathspec '.idea/workspace.xml' did not match any files
Di bawah ini saya daftar isi direktori, cabang, dll. Sejauh ini saya sudah mencoba rm dari dalam direktori, dan melarikan diri kalau-kalau ada karakter lucu, dan saya benar-benar bingung. Saya mencari di web dan SO tetapi tidak dapat menemukan ini secara khusus. Terima kasih sebelumnya!
$ git branch -a
* dot-output
master
remotes/origin/HEAD -> origin/master
remotes/origin/master
remotes/origin/modelspace
$
$ git status
# On branch dot-output
# Untracked files:
# ...
$ ls .idea/
ant.xml encodings.xml modules.xml workspace.xml
compiler.xml inspectionProfiles scopes
copyright libraries testrunner.xml
dictionaries misc.xml vcs.xml
$ ls -al
total 56
drwxr-xr-x 16 matt staff 544 Apr 10 11:33 .
drwxr-xr-x@ 33 matt staff 1122 Apr 10 09:40 ..
-rw-r--r--@ 1 matt staff 12292 Apr 10 11:19 .DS_Store
drwxr-xr-x 18 matt staff 612 Apr 10 11:39 .git
-rw-r--r-- 1 matt staff 98 Mar 6 13:40 .gitignore
drwxr-xr-x 16 matt staff 544 Apr 10 11:34 .idea
-rw-r--r-- 1 matt staff 1113 Feb 25 11:07 README
...
$ head -n 2 .idea/workspace.xml
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
$ git rm .idea/workspace.xml
fatal: pathspec '.idea/workspace.xml' did not match any files
MEMPERBARUI: Jawaban dari Nevik dan Boris banyak membantu. Saya menyadari bahwa saya bingung dengan sejumlah hal yang terjadi, beberapa di antaranya diperburuk oleh IntelliJ IDEA (alat yang biasanya saya sukai, BTW). Pertama, pesan 'fatal: pathspec' dari git rm tidak membantu dan menyesatkan (menurut pendapat pengguna vanili ini). Kedua, saya memiliki file di .gitignore, tetapi telah menghapusnya sebelum menanyakan pertanyaan saya. Namun, itu juga termasuk dalam fitur File Diabaikan IDEA secara independen dari git, dan ditampilkan seperti itu di penampil proyek (bukannya tidak terlacak, seperti yang ditunjukkan status git). Akhirnya, saya menjalankan IDEA saat saya bereksperimen, dan sepertinya sedang membuat ulang file segera setelah rm saya. Jadi, kesimpulan saya adalah jika saya mendapatkan perilaku Git yang membingungkan, pastikan untuk keluar dari IDEA dan bekerja sendiri di baris perintah (dan gitk) saat melakukan debugging. Dan pengguna SO itu luar biasa. Terima kasih lagi!
sumber
rm
bukangit rm
?git clean -f .idea/workspace.xml
untuk menghapus file yang tidak dilacak.Jawaban:
File Anda
.idea/workspace.xml
tidak di bawah kontrol versi git. Anda belum menambahkannya (periksa status git / File tidak dilacak) atau mengabaikannya (menggunakan file .gitignore atau .git / info / exclude)Anda dapat memverifikasinya menggunakan perintah git berikut, yang mencantumkan semua file yang diabaikan:
sumber
Berhasil. Anda menambahkan file baru menggunakan klik kanan -> buat file baru, dan segera hapus setelah itu. File akan masuk ke daftar file yang tidak dilacak.
sumber
rm
direktori atau file, dia tidak perlu menambahkannya ke git jika belum terdaftar di bawah kontrol versi git.Saya tahu ini bukan masalah OP, tapi saya mengalami kesalahan yang sama dengan basis yang sama sekali berbeda, jadi saya hanya ingin menjatuhkannya di sini kalau-kalau ada orang lain yang sama. Ini khusus untuk Windows, dan saya berasumsi tidak memengaruhi pengguna Linux.
Saya punya file dokumen LibreOffice, sebut saja
final report.odt
. Saya kemudian mengubah kasingnya menjadiFinal Report.odt
. Di Windows, ini bahkan tidak dihitung sebagai ganti nama.final report.odt
,Final Report.odt
,FiNaL RePoRt.oDt
Semua sama. Di Linux, ini semua berbeda.Ketika saya akhirnya pergi ke
git rm "Final Report.odt"
dan mendapatkan kesalahan "pathspec tidak cocok dengan file apa pun". Hanya ketika saya menggunakan casing asli pada saat file ditambahkan -git rm "final report.odt"
- apakah itu berhasil.Hal yang dipelajari: untuk mengubah kasus yang seharusnya saya lakukan:
Sekali lagi, itu bukan masalah bagi OP di sini; dan tidak akan memengaruhi pengguna Linux, seperti yang ditunjukkan oleh posnya. Saya hanya memasukkannya untuk orang lain yang mungkin memiliki masalah ini di Windows git dan menemukan pertanyaan ini.
sumber
Jika file Anda
idea/workspace.xml
ditambahkan ke .gitignore (atau folder induknya) hanyaadd
secara manual untuk kontrol versi git. Anda juga dapat menambahkannya menggunakan TortoiseGit. Setelah dorongan berikutnya Anda akan melihat, bahwa masalah Anda terpecahkan.sumber
rm
direktori atau file, dia tidak perlu menambahkannya ke git jika belum terdaftar di bawah kontrol versi git!Dalam contoh saya, ada sesuatu yang sangat aneh sehingga saya tidak yakin apa penyebabnya. Seluruh folder dilakukan sebelumnya. Saya bisa melihatnya di Git, Windows Explorer, dan GitHub, tetapi setiap perubahan yang saya buat pada folder itu sendiri dan file di dalamnya diabaikan. Menggunakan
git check-ignore
untuk melihat apa yang mengabaikannya, dan mencoba menghapusnya menggunakangit rm --cached
tidak berdampak. Perubahan tidak dapat dipentaskan.Saya memperbaikinya dengan:
sumber
Secara pribadi saya menemukan pesan kesalahan serupa dalam skenario ini:
Saya membuat folder yang kosong , jadi tentu saja asalkan kosong, mengetik
git add *
tidak akan mempertimbangkan folder kosong ini. Jadi ketika saya mencoba menjalankangit rm -r *
atau gitrm my_empty_folder/ -r,
saya mendapat pesan kesalahan itu.Solusinya adalah cukup menghapusnya tanpa git:
rm -r my_empty_folder/
atau membuat file data dalam folder ini dan kemudian menambahkannya (git add my_no_long_empty_folder
)sumber
Langkah-langkah semacam itu membantu saya:
sumber
Pindahkan sementara .gitignore ke .gitignore.bck
sumber