nie można usunąć pliku, który naprawdę istnieje-fatal: pathspec ... nie pasował do żadnych plików
Nie można usunąć pliku, który naprawdę istnieje-fatal: pathspec ... nie pasowały żadne pliki
Mam plik pod kontrolą git, który po prostu nie zostanie usunięty. Błędna Komenda to:
$ git rm .idea/workspace.xml
fatal: pathspec '.idea/workspace.xml' did not match any files
Poniżej podaję zawartość katalogu, gałęzie itp. Do tej pory próbowałem rm z katalogu, i uciekam tylko na wypadek, gdyby były śmieszne postacie, i jestem naprawdę zdumiony. Szukałem w sieci i tak, ale nie mogłem znaleźć tego konkretnie.
$ 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
Update
Odpowiedzi od @ Nevik i @ Boris bardzo pomogły. Zdałem sobie sprawę, że byłem zdezorientowany przez wiele rzeczy się dzieje, z których niektóre zostały zaostrzone przez IntelliJ IDEA(narzędzie, które ogólnie kocham, BTW). Po pierwsze, wiadomość "fatal: pathspec" zgit rm
jest zarówno nieprzydatna, jak i wprowadzająca w błąd.
Po Drugie, miałem plik w .gitignore
, ale usunąłem go przed zadaniem pytania. Jednak został on również zawarty w funkcji ignorowanych plików IDEA niezależnie od git, oraz pokazane jako takie w przeglądarce projektu(zamiast untracked, jak pokazano git status). W końcu wpadłem na pomysł, kiedy eksperymentowałem i wygląda na to, że odtwarzał plik zaraz po moim rm
.
Moja propozycja jest taka, że jeśli robię się mylący w zachowaniu Gita, upewnij się, że zakończyłeś program IDEA i działasz wyłącznie w wierszu poleceń (i gitk) podczas debugowania.
8 answers
Twój plik {[1] } nie jest pod kontrolą wersji git. Albo nie dodałeś go jeszcze (sprawdź git status / pliki nie śledzone) albo zignorowałeś go (używając .gitignore lub .git / info / exclude files)
Możesz to zweryfikować używając następującego polecenia git, które wyświetla listę wszystkich ignorowanych plików:
git ls-files --others -i --exclude-standard
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-04-10 16:35:36
$>git add .
$>git rm file_Name
To działa. Dodajesz nowy plik klikając prawym przyciskiem myszy - > utwórz nowy plik, a następnie natychmiast go usuwasz. Plik trafi do listy plików nie śledzonych.Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-03-21 18:26:17
Wiem, że to nie jest problem OP, ale natknąłem się na ten sam błąd z zupełnie inną podstawą, więc chciałem rzucić go tutaj na wypadek, gdyby ktoś inny miał to samo. Jest to specyficzne dla systemu Windows i zakładam, że nie wpływa na użytkowników Linuksa.
Miałem plik LibreOffice doc, nazwij go final report.odt
. Później zmieniłem jego przypadek na Final Report.odt
. W systemie Windows To nawet nie liczy się jako zmiana nazwy. final report.odt
, Final Report.odt
, FiNaL RePoRt.oDt
Wszystkie są takie same. W Linuksie są one różne.
Kiedy w końcu poszedłem do git rm "Final Report.odt"
i dostał błąd "pathspec nie pasował do żadnych plików". Tylko wtedy, gdy użyłem oryginalnej obudowy w momencie dodania pliku -- git rm "final report.odt"
-- zadziałało.
Lekcja nauczona: aby zmienić sprawę, powinienem był zrobić:
git mv "final report.odt" temp.odt
git mv temp.odt "Final Report.odt"
Ponownie, to nie był problem dla OP tutaj; i nie wpłynie na użytkownika Linuksa, jak jego posty pokazują, że jest. Włączam go tylko dla innych, którzy mogą mieć ten problem w Windows git i natknąć się na to pytanie.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-07-23 00:47:34
Jeśli Twój plik {[0] } zostanie dodany do .gitignore (lub jego folder nadrzędny) po prostu add
to ręcznie do kontroli wersji git. Możesz również dodać go za pomocą TortoiseGit. Po kolejnym naciśnięciu zobaczysz, że twój problem jest rozwiązany.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-06-13 20:05:05
Takie kroki mi pomogły:
- git add .
- git stash
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-04-02 07:02:07
W moim przypadku było coś zupełnie dziwnego, że nie jestem pewien, co było przyczyną. Cały folder został utworzony wcześniej. Mogłem go zobaczyć w Git, Windows Explorer i GitHub, ale wszelkie zmiany wprowadzone w samym folderze i plikach w nim były ignorowane. Użycie git check-ignore
, aby zobaczyć, co go ignoruje, i próba usunięcia go za pomocą git rm --cached
nie miała wpływu. Zmian nie udało się wprowadzić.
Naprawiłem przez:
- wykonanie kopii folderu i plików w inne miejsce. Usunąłem oryginał, który został jakoś zignorowany.
- Zatwierdź i wypchnij tę aktualizację.
- W końcu dodałem pliki i folder z powrotem, a git znowu widział i reagował na to zgodnie z oczekiwaniami.
- Skonfiguruj to i możesz iść! :)
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-07-27 15:16:06
Osobiście natknąłem się na podobny komunikat o błędzie w tym scenariuszu:
Utworzyłem folder, który był pusty, więc oczywiście dopóki jest pusty, wpisanie git add *
nie będzie uwzględniało tego pustego folderu. Więc kiedy próbowałem uruchomić git rm -r *
lub po prostu git rm my_empty_folder/ -r,
dostałem ten Komunikat o błędzie.
Rozwiązaniem jest po prostu usunięcie go bez git: rm -r my_empty_folder/
lub utworzenie pliku z danymi w tym folderze, a następnie dodanie go (git add my_no_long_empty_folder
)
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-10-18 14:43:31
Przesuń tymczasowo .gitignore do .gitignore.bck
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-02-10 17:58:37