web-dev-qa-db-fra.com

Utilisation d'un point d'exclamation dans un message de validation Git via la ligne de commande

Comment puis-je entrer un point d'exclamation dans un message de validation Git à partir de la ligne de commande?

Il est possible d'échapper au point d'exclamation avec une barre oblique inverse, mais la barre oblique inverse se retrouve également dans le message de validation.

Je veux quelque chose comme ça:

git commit -am "Nailed it!"
141
Daniel X Moore

Utilisez des guillemets simples au lieu de guillemets doubles

git commit -am 'Nailed it!'

Alternativement, si vous devez utiliser des guillemets doubles pour une raison quelconque mais que vous voulez toujours un littéral !, Désactivez l'expansion de l'historique en haut de votre script via set +H

211
SiegeX

Une autre façon de résoudre ce problème consiste à ajouter un espace après ! comme:

git commit -am "Nailed it! "

Notez le espace entre ! et le dernier ".

(L'espace ne sera pas inclus dans le message de validation - Git coupe automatiquement les espaces à la fin des messages de validation.)

39
nicky_zs

Pas besoin de se souvenir des guillemets ou des échappements à utiliser à la place

  1. Tapez votre commande (ou une partie de celle-ci)
  2. Dans votre ligne de commande, appuyez sur CtrXE "ouvrira votre" éditeur externe ".
  3. Modifiez votre commande et fermez votre éditeur.

… La commande sera exécutée et tous les caractères spéciaux apparaîtront correctement dans le message de validation Git!

(NB de nombreuses autres utilisations: saisie de commandes complexes, ajout de sauts de ligne dans votre message de validation, etc.)

3
PDK

Si vous devez utiliser des guillemets doubles et le ! est le dernier caractère du message, conservez simplement le ! en dehors des guillemets , puisque nous n'utilisons que des guillemets pour que les espaces soient inclus dans le message.

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

Si vous devez inclure ! chaîne médiane, vous pouvez utiliser des guillemets simples, mais si vous devez utiliser un guillemet simple littéral, vous devrez fermer votre devis, puis mettre le ' en dehors de la chaîne en l'échappant. Supposons donc que votre message soit I don't like it! Reverting again!, cela peut être composé avec 'I don' + \' + 't like it! Reverting again!'

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

Quoi de plus compliqué que cela, vous êtes probablement mieux avec git commit et laisser git appeler votre éditeur de texte par défaut :)

1
Ryan H.

Vous pouvez également taper:

git commit -am "Nailed it
!
"

Il vous suffit donc d'appuyer sur Entrée et de placer le point d'exclamation sur une nouvelle ligne, puis de fermer le message de validation. J'ai trouvé ça un jour par accident.

1
cg22