Використання знака оклику в повідомленні Git commit через командний рядок


152

Як я можу ввести знак оклику в повідомлення команди Git з командного рядка?

Можливо, уникнути знака оклику за допомогою зворотної косої риси, але тоді зворотний косий рядок також закінчується у повідомленні про фіксацію.

Я хочу щось подібне:

git commit -am "Nailed it!"

6
Пояснення, чому ця проблема існує в першу чергу: askubuntu.com/questions/434832/…
Марк

Відповіді:


226

Використовуйте одинарні замість подвійних лапок

git commit -am 'Nailed it!'

Крім того, якщо вам потрібно використовувати подвійні лапки з будь-якої причини, але все ще хочете буквально, !тоді вимкніть розширення історії у верхній частині сценарію черезset +H


48
Або просто змішайте свої цитати:git commit -am "$FOO: Nailed it"'!'
Cascabel

4
Це не працювало для мене в OS X, тому я просто використовував git commit(ні-м), щоб відкрити текстовий редактор для свого повідомлення.
Кевін С.

В OSX використовуйте, git commit -m "This is the best code ever"!як описано у відповіді @Ryan H.
mljrg

42

Ще один спосіб вирішити це - додати пробіл після ! подібно до:

git commit -am "Nailed it! "

Зверніть увагу на пробіл між ! і останнє » .

(Пробіл не буде включено у повідомлення про фіксацію - Git обрізає пробіли проміжків від повідомлень про фіксацію автоматично.)


3
Мені це здається найпростішим рішенням і дозволяє подвійні цитати зі змінною інтерполяцією: git commit -m "$(sillyname) $(buzzphrase). $(superb)! ":)
Алекс Холл

4

Не потрібно пам’ятати, які цитати чи уникнення використовувати замість цього

  1. Введіть свою команду (або її частину)
  2. У вашому командному рядку натисніть Ctr X E»відкриє ваш« зовнішній редактор ».
  3. Відредагуйте свою команду та закрийте редактор.

… Команда буде виконана, і будь-які спеціальні символи відображатимуться правильно у повідомленні Git commit!

(Зверніть увагу на багато інших цілей: введення складних команд, додавання перерв рядків у повідомленні про виконання комісій тощо)


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


1

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

git commit -am "Nailed it
!
"

Тому просто натисніть клавішу Enter і поставте знак оклику на новий рядок, а потім закрийте повідомлення про фіксацію. Виявили, що одного разу випадково.


6
Це вставить буквальний новий рядок перед знаком оклику в повідомлення про фіксацію, що некрасиво. -1.
Марк Амерді

-3

Хм. Уникнення його з косою рисою не відображається для повідомлення про фіксацію.

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