Jak zatwierdzić pojedynczy plik / katalog


216

Próbowałem następującego polecenia:

git commit path/to/my/file.ext -m 'my notes'

Otrzymaj błąd w wersji git 1.5.2.1:

error: pathspec '-m' did not match any file(s) known to git.
error: pathspec 'MY MESSAGE' did not match any file(s) known to git.

Czy to niepoprawna składnia zatwierdzeń dla pojedynczego pliku lub katalogu?

Odpowiedź: Argumenty były oczekiwane w tym celu ...

git commit -m 'my notes' path/to/my/file.ext

AKTUALIZACJA: to już nie jest ścisłe :)


1
Czy na pewno masz poprawną wersję? Uaktualniasz do wersji 1.5.2.1? 1.5.2.1 ma już ponad 4 lata.
CB Bailey,

Czy coś zabrania ci aktualizacji gita?
Adam Dymitruk

BTW: To była maszyna wirtualna wyodrębniona ze starej receptury. Lokalny Git był aktualny, nie zdawałem sobie sprawy, że ta wersja była starożytna. Surowość się zmieniła.
doublejosh,

Odpowiedzi:


352

Twoje argumenty są w niewłaściwej kolejności. Spróbuj git commit -m 'my notes' path/to/my/file.ext, a jeśli chcesz być bardziej wyraźne, git commit -m 'my notes' -- path/to/my/file.ext.

Nawiasem mówiąc, git v1.5.2.1 ma 4,5 lat. Możesz chcieć zaktualizować do nowszej wersji (1.7.8.3 to aktualna wersja).


2
Robisz dobrą obserwację. Jednak, co ciekawe, Git 1.7.5.1 na Windows beztrosko przyjmujegit commit path_to_file -m 'message'
Sri Sankaran

@SriSankaran: Wygląda na to, że nauczyli go wtedy rozpoznawać argumenty niezgodne z kolejnością. Ale zgodnie z dokumentacją prawidłową kolejnością jest umieszczenie listy plików na końcu i prawdopodobnie dobrym pomysłem jest trzymanie się udokumentowanej wersji rzeczy.
Lily Ballard

Dzięki. Kolejność tych wiadomości się zmieniła ... lub przynajmniej zmieniła się surowość zamówienia;)
doublejosh

1
@DavidDimalanta: Co masz na myśli?
Lily Ballard

1
@ ihebiheb W tej chwili nie widzę żadnych innych parametrów niebędących flagami, git commitwięc myślę, że odpowiedź brzmi „nic”, ale w wielu innych poleceniach git --odróżnia ścieżki od innych dowolnych argumentów (na przykład za git logpomocą --zapobiega ścieżce od interpretowane jako zakres wersji zamiast)
Lily Ballard,


16

Jeśli znajdujesz się w folderze zawierającym plik

git commit -m 'my notes' ./name_of_file.ext

1
jeśli jestem już w pliku, czy potrzebuję wiodącego „./” (kropka-ukośnik)? czy mogę użyć git commit -m "my note" name_of_file.txt?
Chris22

@ Chris22 Nie jestem pewien, co masz na myśli, mówiąc „jeśli jestem już w pliku” (może miałeś na myśli „w katalogu”?) ... ./To tylko zwykła składnia ścieżki, ale tak, nie jest to konieczne w tym przykładzie.
Jonathan Cross

7

Użyj -oopcji.

git commit -o path/to/myfile -m "the message"

-o, - zatwierdzaj tylko określone pliki


Ta opcja nie jest konieczna. Jeśli w poleceniu commit umieścisz stronę pliku, zatwierdzone zostaną tylko te pliki.
doublejosh

Dobrze wiedzieć, czy chcesz mieć pewność, że zadzierasz z innymi parametrami, np.--amend
Tomas Varga

5

Podaj ścieżkę po wprowadzonym komunikacie zatwierdzenia, na przykład:

git commit -m "commit message" path/to/file.extention

4

W przypadku gita 1.9.5 w systemie Windows 7: „moje notatki” (podwójne cudzysłowy) rozwiązały ten problem. W moim przypadku umieszczenie pliku (ów) przed lub po „-m” wiadomości. nie zrobił różnicy; problem polegał na użyciu pojedynczych cudzysłowów.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.