Błąd zatwierdzenia git: pathspec 'commit' nie pasuje do żadnego pliku (ów) znanych gitowi

89

Próbuję przesłać aplikację Ruby do Heroku. Zaczynam od, git initpotem piszę, git add .a potem używam git commit -m initial commit.

Za każdym razem, gdy używam git commit -m, otrzymuję komunikat o błędzie:

Błąd zatwierdzenia git: pathspect 'commit' nie pasuje do żadnego pliku (ów) znanych gitowi.

Powiedziano mi, że tak się dzieje, ponieważ argumenty są w złej kolejności.

Zauważyłem, że kiedy git add .go używam , nie wyświetla listy plików, które są dodawane, ponieważ po prostu przejdzie do następnej linii.

Podejrzewam, że mam ten problem, ponieważ moje pliki tak naprawdę nie są dodawane.

Byłbym wdzięczny za każdą radę, jak rozwiązać ten problem.

user2457644
źródło

Odpowiedzi:

198

Argumenty wiersza poleceń są oddzielone spacjami. Jeśli chcesz podać argument zawierający spację, zacytuj go. Więc użyj git commit -m "initial commit".

kan
źródło
34
git commit -m pojedynczy cudzysłów 'początkowe zatwierdzenie' nie działał dla mnie, używam go w środowisku Windows.
somshivam
15
W systemie Windows jedynym wyborem są cudzysłowy.
Leo
Dziękuję Ci bardzo. Rozwiązałem to za pomocą podwójnego cudzysłowu w moim systemie okiennym.
Bhavin Thummar
Oszczędzanie dnia, w ogóle nie użyłem cudzysłowów (podwójnych pojedynczych), więc zawiodło z powodu spacji.
Timo
VScode w systemie Linux również potrzebuje podwójnych.
Timo
74

Chciałbym tylko dodać -

W oknach komunikat o zatwierdzeniu powinien być w podwójnych cudzysłowach ( git commit -m "initial commit"zamiast git commit -m 'initial commit'), ponieważ spędziłem około godziny, aby dowiedzieć się, że pojedynczy cudzysłów nie działa w oknach.

Nicki
źródło
4
Użytkownicy systemu Windows zajrzyj tutaj!
Shane,
2
Pochodzące z Pomocy GitHub, gdzie cytaty są pojedyncze.
Bob Stein
Używam git commit -m „first commit” i nadal otrzymuję ten sam błąd w systemie Windows.
multigoodverse
@nicks Dziękuję panu!
haakym
tak, pochodzi z pomocy bitbucket, która również zacytowała pojedyncze cytaty
Kirill Yunussov
6

W moim przypadku ten błąd był spowodowany znakami specjalnymi, które rozważałem jako podwójne cudzysłowy, gdy kopiowałem polecenie ze strony internetowej.

zeeawan
źródło
5

Pomyliłem się tutaj, używając podwójnych cudzysłowów zamiast pojedynczych cytatów.

Zmień to

git commit -m 'initial commit'

do

git commit -m "initial commit"

Sai Gopi Me
źródło
4

Czy zdarzyło mi się to podczas zatwierdzania z Xcode 6, po dodaniu katalogu plików i podkatalogów do folderu projektu. Problem polegał na tym, że w arkuszu Commit na lewym pasku bocznym zaznaczyłem nie tylko katalog główny, który dodałem, ale także wszystkie jego elementy potomne. Aby rozwiązać problem, zaznaczyłem tylko katalog główny. To również popełniło wszystkich potomków, zgodnie z życzeniem, bez żadnego błędu.

Linux_Google
źródło
3

Czy zdarzyło mi się to podczas zatwierdzania z Xcode 6, po dodaniu katalogu plików i podkatalogów do folderu projektu. Problem polegał na tym, że w arkuszu Commit , na lewym pasku bocznym, zaznaczyłem nie tylko katalog główny, który dodałem, ale także wszystkie jego elementy potomne. Aby rozwiązać problem, zaznaczyłem tylko katalog główny. To również popełniło wszystkich potomków, zgodnie z życzeniem, bez żadnego błędu.

Jerry Krinock
źródło
3

Zwróć uwagę, że w oknach bardzo ważne git commit -m "initial commit"jest, aby początkowe teksty zatwierdzenia były umieszczone w podwójnych cudzysłowach. Pojedyncze cudzysłowy spowodują wyświetlenie błędu specyfikacji ścieżki.


źródło
1

W moim przypadku problem polegał na tym, że użyłem złego aliasu dla git commit -m. Użyłem gcaliasu, który nie miał na myśligit commit -m

TG
źródło
0

jeśli są jakieś osoby używające pythona os do wywołania git, możesz użyć os.system ('git commit -m "' + str (komentarz) + '"')

未来 陆家嘴 顶尖 的 投资 人
źródło
0

Napotkałem ten sam problem. moja składnia nie ma problemu. Okazało się, że skopiowałem i wkleiłem git commit -m „komentarze” z mojej notatki. Wpisuję ponownie, polecenie wykonuje się bez problemu. Okazuje się, że - i „” są problemem podczas kopiowania wklejania do terminala.

Haibin Chen
źródło
0

W moim przypadku problem polegał na tym, że zapomniałem dodać przełącznik -m przed cytowanym komentarzem. Może to być również typowy błąd, a otrzymany komunikat o błędzie jest dokładnie taki sam

Javier D.
źródło