2013-04-10 6 views
97

stanie usunąć plik, który naprawdę istnieje - krytyczny: pathspec ... nie dało żadnych plikówstanie usunąć plik, który naprawdę istnieje - śmiertelne: pathspec ... nie dało żadnych plików

Mam plik pod kontrola git, która po prostu nie zostanie usunięta. Komenda braku jest:

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

Poniżej listy zawartości katalogu, gałęzie itp Dotychczas Próbowałem rm od wewnątrz katalogu, i ucieczki na wszelki wypadek są dziwne znaki, a ja jestem naprawdę zakłopotany. Przeszukałem sieć i SO, ale nie mogłem tego znaleźć. Z góry dziękuję!

$ 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 . 
[email protected] 33 matt staff 1122 Apr 10 09:40 .. 
[email protected] 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 

UPDATE: Odpowiedzi z Nevik i Borys pomogło. Zdałem sobie sprawę, że byłem zdezorientowany przez wiele rzeczy, które się dzieją, a niektóre z nich zostały zaognione przez IntelliJ IDEA (narzędzie, które ogólnie lubię, BTW). Po pierwsze, wiadomość "fatal: pathspec" z git rm jest zarówno nieprzydatna, jak i wprowadzająca w błąd (w opinii tego użytkownika wanilii). Po drugie, miałem plik w .gitignore, ale usunąłem go, zanim zadaję moje pytanie. Jednak był także zawarty w funkcji Ignorowane pliki IDEA niezależnie od git i pokazywany jako taki w przeglądarce projektu (zamiast nieśledzonego, jak pokazał status git). W końcu, gdy eksperymentowałem, miałem IDEA, i wygląda na to, że odtwarzał plik natychmiast po moim wydaniu. Tak więc, moim na wynos jest to, że jeśli zaczynam mylące zachowanie Git, upewnij się, że wyjdziesz z IDEA i pracujesz wyłącznie w linii poleceń (i gitk) podczas debugowania. I że użytkownicy SO są niesamowici. Dzięki jeszcze raz!

+8

Czy próbowałeś po prostu usunąć plik z 'rm' zamiast' git rm'? –

+0

@NevikRehnel Tak, myślałem, aby spróbować, dzięki, ale wygląda na to, że IntelliJ IDEA (który miałem uruchomiony) reanimowane po każdym skasowaniu. Doh! –

+0

Pracuję z Eclipse i Attlassian SourceTree ... Twoje pytanie pomoże mi rozwiązać ten problem. Dzięki ! – Manu

Odpowiedz

91

Twój plik .idea/workspace.xml nie jest objęty kontrolą wersji git. Nie dodałeś go jeszcze (sprawdź status git/pliki Untracked) lub zignoruj ​​(używając plików .gitignore lub .git/info/exclude).

Możesz to sprawdzić, używając następującej komendy git, która wyświetla listę wszystkich ignorowanych plików:

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

To bardzo pomogło, Boris. Dziękuję Ci! Zaktualizowałem swoje pytanie, aby podsumować rzeczy, które się dzieją (IDEA, itp.). –

1

Jeśli plik idea/workspace.xml jest dodawana do .gitignore (lub jego folder nadrzędny) tylko add go ręcznie do kontroli wersji git. Możesz również dodać go za pomocą TortoiseGit. Po następnym naciśnięciu zobaczysz, że twój problem został rozwiązany.

Add to git versioning using TortoiseGit

+0

Gdy ktoś potrzebuje 'rm' katalogu lub pliku, nie musi dodawać go do git, jeśli nie ma go jeszcze na liście kontrola wersji git! – M98

9
$>git add . 
$>git rm file_Name 

To działa. Możesz dodać nowy plik prawym przyciskiem myszy -> utwórz nowy plik i natychmiast go usuń. Plik trafiłby na listę plików nieśledzonych.

+0

Jeśli wystąpi błąd podczas usuwania pliku, to podczas usuwania pliku możesz użyć -f czegoś w stylu: $> git rm -f nazwa_pliku –

+0

Gdy ktoś potrzebuje 'rm' katalogu lub pliku, on/ona nie trzeba dodawać go do git, jeśli nie ma go jeszcze pod kontrolą wersji git. – M98

Powiązane problemy