Использование восклицательного знака в сообщении коммита Git через командную строку? - PullRequest
141 голосов
/ 27 февраля 2011

Как мне ввести восклицательный знак в сообщение коммита Git из командной строки?

Возможно экранировать восклицательный знак с помощью обратной косой черты, но затем обратная косая черта также заканчивается в сообщении фиксации.

Я хочу что-то вроде этого:

git commit -am "Nailed it!"

Ответы [ 6 ]

210 голосов
/ 27 февраля 2011

Используйте одинарные кавычки вместо двойных

git commit -am 'Nailed it!'

В качестве альтернативы, если вам нужно использовать двойные кавычки по какой-либо причине, но при этом все еще хотите литерал !, отключите расширение истории в верхней части вашего скрипта с помощью set +H

39 голосов
/ 23 мая 2014

Другой способ решить эту проблему - добавить пробел после ! , например:

git commit -am "Nailed it! "

Обратите внимание на пробел между ! и последним ".

(Пробел не будет включен в сообщение о фиксации - Git автоматически удаляет завершающие пробелы из сообщений фиксации.)

3 голосов
/ 06 апреля 2016

Не нужно помнить, какие кавычки или экранирование использовать вместо

  1. Введите свою команду (или ее часть)
  2. В командной строке нажмите Ctr X E »откроет ваш« внешний редактор ».
  3. Отредактируйте вашу команду и закройте редактор.

… команда будет выполнена & любые специальные символы будут правильно отображаться в сообщении коммита Git!

(NB во многих других случаях: ввод сложных команд, добавление разрывов строк в вашем сообщении о фиксации и т. Д.)

1 голос
/ 03 июля 2018

Если вам нужно использовать двойные кавычки, а ! - последний символ в сообщении, просто оставьте ! вне кавычек , поскольку мы используем только кавычки, чтобы пробелы включаются в сообщение.

git commit -m "Reverting last commit because I don't like it"!

Если вам нужно включить ! среднюю строку, вы можете использовать одинарные кавычки, но если вам нужно использовать буквальную одинарную кавычку, вам нужно закрыть свою кавычку, а затем поставить ' вне строки: избежать этого. Итак, допустим, ваше сообщение I don't like it! Reverting again!, оно может быть составлено с 'I don' + \' + 't like it! Reverting again!'

git commit -m 'I don'\''t like it! Reverting again!'

Что-нибудь более сложное, чем это, возможно, вам лучше воспользоваться git commit и позволить git вызвать ваш текстовый редактор по умолчанию:)

1 голос
/ 22 мая 2014

Вы также можете ввести:

git commit -am "Nailed it
!
"

Так что просто нажмите Enter и поместите восклицательный знак в новую строку, затем закройте сообщение фиксации. Обнаружил, что один случайно однажды.

0 голосов
/ 27 апреля 2017

Хм.Избавление от косой черты не отображается в сообщении о коммите.

git commit -m "Nailed it\!"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...