11

Как добавить перенос строки в 'git commit -m' из командной строки?

12

Тема: Как добавить перенос строки в сообщение коммита Git из командной строки без использования Vim?

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

Возможно ли это сделать?

5 ответ(ов)

9

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

git commit -m 'Сообщение

идет
здесь'

В качестве альтернативы, вы можете использовать "here document" (также известный как heredoc):

git commit -F- <<EOF
Сообщение

идет
здесь
EOF
8

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

git commit -m "Мой заголовок" -m "Моя содержательная строка."

Обратите внимание, что это создаёт отдельные параграфы, а не строки. Таким образом, между каждыми двумя строками с -m будет пустая строка, например:

Мой заголовок

Моя содержательная строка.
4

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

git commit -m "это
> строка
> с новыми строками
> возможно"

Просто наберите текст и нажмите клавишу Enter, когда хотите перейти на новую строку. Символ ">" означает, что вы нажали Enter, и появилась новая строка. Также работают другие методы.

0

Если вы пробовали выполнить команду

git commit -m"test\ntest"
```, 

то, к сожалению, это не сработает, так как Git не распознает `\n` как символ новой строки в аргументе сообщения коммита. Однако вы можете использовать более сложный подход, например:

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


Но это не самый элегантный способ. Вместо этого вы можете создать свою собственную обертку для `git commit`, назовем её `git-commitlb`, и поместить её в ваш `PATH`. Вот пример такого скрипта:

```bash
#!/bin/bash

message=$1

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

Теперь вы сможете использовать её следующим образом:

git commitlb "line1\nline2\nline3"

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

git commitlb "line1\n\nline2\nline3"

Это позволит сохранить необходимый формат коммитов в вашем репозитории.

0

Чтобы использовать многострочные комментарии к коммитам в Git с zsh на Mac, вы можете заключить текст в двойные кавычки ("). Затем вы можете просто продолжать вводить текст и нажимать Enter для добавления новых строк. Вы не отправите сообщение в Git, пока не закроете кавычки и не нажмете Enter в конце.

Пример:

git commit -m "Это мой комментарий
к коммиту, который занимает
несколько строк."

После того как вы закроете кавычки и нажмете Enter, ваш коммит будет выполнен с многострочным сообщением. Убедитесь, что вы не забываете закрыть кавычки, иначе команда не завершится корректно.

Чтобы ответить на вопрос, пожалуйста, войдите или зарегистрируйтесь