Использование восклицательного знака в сообщении коммита Git через командную строку

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

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

Мне нужно что-то вроде этого:

git commit -am "Nailed it!"

Ответ 1

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

git commit -am 'Nailed it!'

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

Ответ 2

Еще один способ решить это - добавить пробел после! как:

git commit -am "Nailed it! "

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

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

Ответ 3

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

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

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

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

Ответ 4

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

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 вызвать ваш текстовый редактор по умолчанию :)

Ответ 5

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

git commit -am "Nailed it
!
"

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

Ответ 6

Хм. Экранирование его косой чертой не отображается в сообщении фиксации для меня.

git commit -m "Nailed it\!"