Question Ajoutez un saut de ligne à 'git commit -m' depuis la ligne de commande


J'utilise Git depuis la ligne de commande et j'essaie d'ajouter un saut de ligne au message de git commit -m "") sans entrer dans Vim.

Est-ce possible?


536
2018-02-21 10:02


origine


Réponses:


Certainement, comment cela se fait dépend de votre shell. Dans Bash, vous pouvez utiliser des guillemets simples autour du message et laisser simplement le guillemet ouvert, ce qui fera que Bash demandera une autre ligne, jusqu'à ce que vous fermiez la citation. Comme ça:

git commit -m 'Message
goes
here'

Alternativement, vous pouvez utiliser un "document ici":

git commit -F- <<EOF
Message
goes
here
EOF

467
2018-02-21 10:12



En utilisant Git depuis la ligne de commande avec Bash, vous pouvez faire ce qui suit:

git commit -m "this is
> a line
> with new lines
> maybe"

Il suffit de taper et d'appuyer Entrer quand vous voulez une nouvelle ligne, le symbole ">" signifie que vous avez appuyé Entrer, et il y a une nouvelle ligne. D'autres réponses fonctionnent aussi.


349
2018-02-16 03:27



Si vous voulez juste, disons, une ligne de tête et une ligne de contenu, vous pouvez utiliser:

git commit -m "My head line" -m "My content line."

337
2018-02-21 19:46



Vous devriez être capable d'utiliser

git commit -m $'first line\nsecond line'

Du Bash manuel:

Mots de la forme $ 'chaînesont traités spécialement. Le mot s'étend à    chaîne, avec des caractères à échappement oblique inversé remplacés comme spécifié par le   Norme ANSI C

Cela inclut le support pour les nouvelles lignes comme indiqué ci-dessus, plus les codes hexadécimal et Unicode et autres. Accédez à la section liée pour voir la liste des caractères d'échappement à barre oblique inverse.


84
2018-02-21 11:28



Ajout de sauts de ligne à votre commit Git

Essayez ce qui suit pour créer un message de validation multiligne:

git commit -m "Demonstrate multi-line commit message in Powershell" -m "Add a title to your commit after -m enclosed in quotes,
then add the body of your comment after a second -m.
Press ENTER before closing the quotes to add a line break.
Repeat as needed.
Then close the quotes and hit ENTER twice to apply the commit."

Puis vérifiez ce que vous avez fait:

git log -1

Vous devriez vous retrouver avec quelque chose comme ceci:

Multi-line Git commit message in PowerShell

La capture d'écran provient d'un exemple que j'ai configuré avec PowerShell avec Poshgit.


78
2018-01-10 17:11



Faire quelque chose comme

git commit -m"test\ntest"

ne fonctionne pas, mais quelque chose comme

git commit -m"$(echo -e "test\ntest")"

fonctionne, mais ce n'est pas très joli. Vous configurez un git-commitlb commande dans votre PATH qui fait quelque chose comme ça:

#!/bin/bash

message=$1

git commit -m"$(echo -e "$message")"

Et utilisez-le comme ceci:

git commitlb "line1\nline2\nline3"

Je pense que la convention générale est d'avoir une ligne de résumé comme première ligne, puis deux sauts de ligne, et un message étendu dans le message de validation, donc faire quelque chose comme ça casserait cette convention. Vous pourriez bien sûr faire:

git commitlb "line1\n\nline2\nline3"

37
2018-02-21 10:22



J'utilise zsh sur un Mac, et je peux poster des messages de commit multilignes entre guillemets ("). Je continue à taper et j'appuie sur return pour de nouvelles lignes, mais le message n'est pas envoyé à Git tant que je ne ferme pas les guillemets. .


18
2018-02-21 10:16



J'espère que cela ne va pas trop loin de la question affichée, mais définir l'éditeur par défaut puis en utilisant

git commit -e

pourrait être beaucoup plus confortable.


18
2017-12-08 12:49



De Documentation Git:

-m <msg>
  --message = <msg>
  Utilisez le <msg> donné comme message de validation. Si plusieurs -m les options sont données, leurs valeurs sont concaténées en paragraphes séparés.

Donc, si vous cherchez à regrouper plusieurs messages de validation, cela devrait faire l'affaire:

git commit -m "commit message1" -m "commit message2"

14
2017-08-26 23:57