gerçekten var olan dosya kaldırılamıyor - fatal: pathspec… hiçbir dosyayla eşleşmedi


165

gerçekten var olan dosya kaldırılamıyor - fatal: pathspec ... hiçbir dosyayla eşleşmedi

Git kontrol altında sadece silinmeyecek bir dosya var. Başarısız komut:

$ git rm .idea/workspace.xml
fatal: pathspec '.idea/workspace.xml' did not match any files

Aşağıda dizin içeriğini, dallarını vb listeliyorum. Şimdiye kadar dizinin içinden rm denedim ve sadece komik karakterler olması durumunda kaçıyorum ve gerçekten güdük. Web'de ve SO'da arama yaptım, ancak özellikle bulamadım. Şimdiden teşekkürler!

$ 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

GÜNCELLEME: Nevik ve Boris'in yanıtları çok yardımcı oldu. Bazıları IntelliJ IDEA (genel olarak sevdiğim bir araç, BTW) tarafından daha da kötüleşen bir dizi şeyle kafamın karıştığını fark ettim. İlk olarak, git rm'den 'fatal: pathspec' mesajı hem yararsızdır hem de yanıltıcıdır (bu vanilya kullanıcısının görüşüne göre). İkincisi, dosyayı .gitignore'de aldım, ancak sorumu sormadan önce kaldırmıştım. Ancak, IDEA'nın Yok Sayılan Dosyalar özelliğine git'ten bağımsız olarak dahil edildi ve proje görüntüleyicide olduğu gibi (git durumunun gösterdiği gibi izlenmemiş yerine) gösterildi. Son olarak, deneme yaparken IDEA çalışıyordum ve rm'den hemen sonra dosyayı yeniden oluşturuyor gibi görünüyor. Yani, benim paket benim Git Git kafa karıştırıcı alırsanız, hata ayıklama sırasında komut satırında (ve gitk) IDEA çıkın ve tek başına çalıştığınızdan emin olun. Ve bu SO kullanıcıları harika. Tekrar teşekkürler!


15
rmyerine dosyayı kaldırmayı denediniz git rmmi?
Nevik Rehnel

1
@NevikRehnel Evet, bunu denemeyi düşündüm, teşekkürler, ama her silme işleminden sonra IntelliJ IDEA (koştuğum) resüsitasyonuna benziyor. Doh!
Matthew Cornell

Eclipse ve Attlassian SourceTree ile çalışıyorum ... sorunuz bu sorunu çözmeme yardımcı oluyor. Teşekkürler !
Manu

git clean -f .idea/workspace.xmlİzlenmeyen dosyayı kaldırmak için kullanabilirsiniz .
chemturion

Yanıtlar:


134

Dosyanız .idea/workspace.xmlgit sürüm kontrolü altında değil. Henüz eklemediniz (git durumunu / İzlenmeyen dosyaları kontrol edin) veya yok saydınız (.gitignore veya .git / info / exclude dosyalarını kullanarak)

Yok sayılan tüm dosyaları listeleyen aşağıdaki git komutunu kullanarak doğrulayabilirsiniz:

git ls-files --others -i --exclude-standard

Bu çok yardımcı oldu Boris. Teşekkür ederim! Soruları, neler olup bittiğini özetlemek için güncelledim (IDEA, vb.)
Matthew Cornell

23
$>git add .
$>git rm file_Name  

İşe yarıyor. Sağ tıklatarak yeni dosya eklersiniz -> yeni dosya oluştur ve hemen ardından silin. Dosya izlenmeyen dosya listesine gider.


2
Dosyayı silerken hata verirse, dosyayı silerken -f gibi bir şey kullanabilirsiniz: $> git rm -f file_Name
Abhinav

1
Birinin rmbir dizine veya bir dosyaya ihtiyacı olduğunda, git sürüm denetimi altında listelenmemişse, onu git'e eklemesine gerek yoktur.
Mohammad Kermani

8

Bunun OP'nin sorunu olmadığını biliyorum, ama tamamen farklı bir temelde aynı hatayla karşılaştım, bu yüzden başka birinin aynı olması durumunda buraya bırakmak istedim. Bu Windows'a özgüdür ve sanırım Linux kullanıcılarını etkilemez.

Bir LibreOffice doc dosyam vardı, diyelim final report.odt. Daha sonra davanın yerine geçtim Final Report.odt. Windows'da bu yeniden adlandırma olarak sayılmaz. final report.odt, Final Report.odt, FiNaL RePoRt.oDtHepsi aynı. Linux'ta bunların hepsi farklı.

Sonunda gittiğimde git rm "Final Report.odt"ve "pathspec hiçbir dosyayla eşleşmedi" hatası var. Sadece dosya eklenirken orijinal kasayı kullandığımda - git rm "final report.odt"- işe yaradı.

Alınan ders: bunun yerine davayı değiştirmek zorundayım:

git mv "final report.odt" temp.odt
git mv temp.odt "Final Report.odt"

Yine, buradaki OP için sorun değildi; ve yayınları açıkça görüldüğü gibi bir Linux kullanıcısını etkilemez. Ben sadece Windows git ve bu soruya rastlamak bu sorunu olabilir diğerleri için dahil.


1
Git'te kaydedilenler için yolun herhangi bir bölümü farklıysa bu Windows'ta olabilir. Windows'da bir bash kabuğu kullanarak geçici bir çözüm buldum
Rattle

3

Dosyanız idea/workspace.xml .gitignore'a (veya üst klasörüne) eklenmişse, sadece addsürüm kontrolüne manuel olarak ekleyin . Ayrıca TortoiseGit kullanarak ekleyebilirsiniz. Bir sonraki basıştan sonra sorunun çözüldüğünü göreceksiniz.

TortoiseGit kullanarak git sürümüne ekle


1
Birisi rmbir dizine veya bir dosyaya ihtiyaç duyduğunda, git sürüm kontrolü altında listelenmemişse onu git'e eklemesine gerek yoktur!
Mohammad Kermani

0

Benim durumumda, nedeninin ne olduğundan emin olmadığım tamamen garip bir şey vardı. Klasörün tamamı önceden işlenmişti. Git, Windows Explorer ve GitHub'da görebiliyordum, ancak klasörün kendisi ve içindeki dosyalar üzerinde yaptığım değişiklikler göz ardı edildi. git check-ignoreNeyi görmezden geldiğini görmek için kullanmak ve onu kullanarak kaldırmaya çalışmanın git rm --cachedhiçbir etkisi yoktu. Değişiklikler sahnelenemedi.

Ben sabit:

  1. Başka bir konumdaki klasör ve dosyaların kopyasını oluşturma.
  2. Bir şekilde yok sayılan orijinali sildim.
  3. Bu güncellemeyi tamamlayın ve aktarın.
  4. Son olarak, dosyaları ve klasörü geri ekledim ve git tekrar beklendiği gibi görüp tepki veriyordu.
  5. Sahne ve taahhüt, ve gitmek için iyi! :)

0

Şahsen ben bu senaryoda benzer bir hata mesajı tökezledi:

Boş olan bir klasör oluşturdum , doğal olarak boş olduğu sürece, yazmak git add *bu boş klasörü dikkate almayacaktır. Bu yüzden çalıştırmayı denediğimde git rm -r *veya sadece rm my_empty_folder/ -r,gittiğimde bu hata mesajını aldım.

Çözüm git: olmadan kaldırmanız rm -r my_empty_folder/ veya bu klasör içinde bir veri dosyası oluşturup eklemeniz ( git add my_no_long_empty_folder)


0

Bu adımlar bana yardımcı oldu:

  1. git ekleyin.
  2. git stash

-6

Geçici olarak .gitignore öğesini .gitignore.bck dosyasına taşıyın

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.