Як git вчинити один файл / каталог


216

Спробував таку команду:

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

Отримати помилку в 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.

Це невірний синтаксис для файлу або каталогу singe?

ВІДПОВІДЬ: Аргументи були очікувати в такому порядку ...

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

ОНОВЛЕННЯ: це вже не суворо :)


1
Ви впевнені, що ваша версія правильна? Оновлення до 1.5.2.1? 1.5.2.1 зараз старше 4 років.
CB Bailey

Щось забороняє вам оновлювати git?
Адам Дімітрук

BTW: Це виправлення VM зі старого рецепта. Місцевий Git був в курсі, не розумів, що ця версія була давньою. Строгість змінилася.
doublejosh

Відповіді:


352

Ваші аргументи в неправильному порядку. Спробуйте git commit -m 'my notes' path/to/my/file.ext, або якщо ви хочете бути більш явним, git commit -m 'my notes' -- path/to/my/file.ext.

Між іншим, git v1.5.2.1 - 4,5 роки. Ви можете оновити до нової версії (1.7.8.3 - це поточна версія).


2
Ви добре зробите спостереження. Однак, що цікаво, Git 1.7.5.1 на Windows з легкістю приймаєgit commit path_to_file -m 'message'
Шрі Санкаран

@SriSankaran: Здається, вони тоді навчили його розпізнавати аргументи, що не були в порядку. Але згідно з документацією, правильний порядок полягає в тому, щоб останній список файлів був останнім, і це, мабуть, гарна ідея дотримуватися документованої версії речей.
Лілі Баллард

Дякую. Порядок цих повідомлень змінився ... або принаймні суворість порядку змінилася;)
подвійний джойш

1
@DavidDimalanta: Що ти маєш на увазі?
Лілі Баллард

1
@ihebiheb Дивлячись прямо зараз я не бачу якихось - або інших параметрів , НЕ прапор , щоб git commitтаким чином , я припускаю , що відповідь «нічого», але і в багатьох інших мерзотника командує --відрізняє шляху від інших аргументів довільної форми (наприклад, git logв --запобігає шлях від інтерпретується як діапазон перегляду)
Лілі Баллард


16

Якщо ви знаходитесь в папці, яка містить файл

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

1
якщо я вже є у файлі, чи потрібно мені провідне "./" (крапка вперед-косою рисою)? я можу використовувати git commit -m "my note" name_of_file.txt?
Chris22

@ Chris22 Я не впевнений, що ви маєте на увазі під "якщо я вже є у файлі" (можливо, ви мали на увазі "в каталозі"?) ... ./це просто нормальний синтаксис шляху, але так, не потрібно в цьому прикладі.
Джонатан Крос

7

Використовуйте -oопцію.

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

-o, - тільки виконувати лише вказані файли


Цей варіант не потрібен. Якщо ви включите сторінку файлу в команду для фіксації, вона зафіксує лише ці файли.
doublejosh

Добре знати, якщо ви хочете переконатися, що возиться з подальшими парамами, наприклад--amend
Tomas Varga

5

Вкажіть шлях після введеного повідомлення про вчинення, наприклад:

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

4

Для git 1.9.5 для Windows 7: "Мої нотатки" (подвійні лапки) виправили цю проблему. У моєму випадку розміщення файлів (-ів) до або після -m 'повідомлення'. не змінилося; використання однієї лапки було проблемою.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.