Добавьте разрыв строки в 'git commit -m' из командной строки - PullRequest
647 голосов
/ 21 февраля 2011

Я использую Git из командной строки и пытаюсь добавить разрыв строки в сообщение фиксации (используя git commit -m ""), не заходя в Vim.

Возможно ли это?

Ответы [ 15 ]

590 голосов
/ 21 февраля 2011

Конечно, как это сделать, зависит от вашей оболочки.В Bash вы можете использовать одинарные кавычки вокруг сообщения и просто оставлять цитату открытой, что заставит Bash запросить другую строку, пока вы не закроете цитату.Например:

git commit -m 'Message
goes
here'

В качестве альтернативы вы можете использовать «здесь документ»:

git commit -F- <<EOF
Message
goes
here
EOF
411 голосов
/ 21 февраля 2011

Если вы просто хотите, скажем, заголовок и строку содержимого, вы можете использовать:

git commit -m "My head line" -m "My content line."
379 голосов
/ 16 февраля 2012

Используя Git из командной строки с Bash, вы можете сделать следующее:

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

Просто введите и нажмите Введите , если вы хотите новую строку, символ ">" означаетчто вы нажали Введите , и появится новая строка.Другие ответы работают также.

90 голосов
/ 21 февраля 2011

Вы должны быть в состоянии использовать

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

Из руководства Bash :

Слова вида $ ' string ' обрабатываются специально. Слово расширяется до строка , символы с обратной косой чертой заменяются в соответствии с Стандарт ANSI C.

Это включает в себя поддержку новых строк, как показано выше, а также шестнадцатеричные и юникод-коды и другие. Перейдите в связанный раздел, чтобы увидеть список символов с обратной косой чертой.

85 голосов
/ 10 января 2014

Добавление разрывов строк к вашему коммиту Git

Попробуйте создать сообщение о многострочном коммите следующим образом:

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."

Затем проверьте, что вы сделали:

git log -1

У вас должно получиться что-то вроде этого:

Multi-line Git commit message in PowerShell

Снимок экрана взят из примера, который я настроил с помощью PowerShell с Poshgit.

42 голосов
/ 21 февраля 2011

Делать что-то вроде

git commit -m"test\ntest"

не работает, но что-то вроде

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

работает, но это не очень красиво.Вы устанавливаете git-commitlb команду в вашем PATH, которая делает что-то вроде этого:

#!/bin/bash

message=$1

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

И используете это так:

git commitlb "line1\nline2\nline3"

Слово предупреждения, у меня естьощущение, что общее соглашение состоит в том, чтобы иметь в качестве первой строки итоговую строку, а затем два переноса строк, а затем расширенное сообщение в сообщении фиксации, поэтому выполнение чего-то подобного нарушило бы это соглашение.Конечно, вы можете сделать:

git commitlb "line1\n\nline2\nline3"
34 голосов
/ 08 декабря 2014

Я надеюсь, что это не слишком далеко от опубликованного вопроса, но устанавливает редактор по умолчанию и затем использует

git commit -e

может быть намного удобнее.

32 голосов
/ 27 августа 2016

С Git документация :


--message =
Используйте данное в качестве сообщения фиксации. Если задано несколько параметров -m, их значения объединяются в отдельные абзацы.

Итак, если вы ищете группирование нескольких сообщений коммита, это должно сделать работу:

git commit -m "commit message1" -m "commit message2"
20 голосов
/ 09 октября 2017

Нет необходимости усложнять вещи.После -m "text... следующая строка получается нажатием Enter .При нажатии Enter появляется >.Когда вы закончите, просто введите " и нажмите Введите :

$ git commit -m "Another way of demonstrating multicommit messages:
>
> This is a new line written
> This is another new line written
> This one is really awesome too and we can continue doing so till ..."

$ git log -1
commit 5474e383f2eda610be6211d8697ed1503400ee42 (HEAD -> test2)
Author: ************** <*********@gmail.com>
Date:   Mon Oct 9 13:30:26 2017 +0200

Another way of demonstrating multicommit messages:

This is a new line written
This is another new line written
This one is really awesome too and we can continue doing so till ...
19 голосов
/ 21 февраля 2011

Я использую zsh на Mac и могу публиковать сообщения о многострочной фиксации в двойных кавычках ("). По сути, я продолжаю печатать и нажимать клавишу возврата для новых строк, но сообщение не отправляется в Git, пока я не закроюкавычки и возврат.

...