Как добавить перенос строки в 'git commit -m' из командной строки?
Тема: Как добавить перенос строки в сообщение коммита Git из командной строки без использования Vim?
Я использую Git через командную строку и пытаюсь добавить перенос строки в сообщение коммита (используя команду git commit -m ""
), но не хочу заходить в Vim.
Возможно ли это сделать?
5 ответ(ов)
Конечно, как именно это сделать, зависит от вашей оболочки. В Bash вы можете использовать одинарные кавычки вокруг сообщения и оставить кавычку открытой, что заставит Bash ждать ввода на следующей строке, пока вы не закроете кавычку. Вот так:
git commit -m 'Сообщение
идет
здесь'
В качестве альтернативы, вы можете использовать "here document" (также известный как heredoc):
git commit -F- <<EOF
Сообщение
идет
здесь
EOF
Если вам нужно указать, например, заголовок и содержательную строку, вы можете использовать команду:
git commit -m "Мой заголовок" -m "Моя содержательная строка."
Обратите внимание, что это создаёт отдельные параграфы, а не строки. Таким образом, между каждыми двумя строками с -m
будет пустая строка, например:
Мой заголовок
Моя содержательная строка.
Когда вы используете Git из командной строки с Bash, вы можете сделать следующее:
git commit -m "это
> строка
> с новыми строками
> возможно"
Просто наберите текст и нажмите клавишу Enter, когда хотите перейти на новую строку. Символ ">" означает, что вы нажали Enter, и появилась новая строка. Также работают другие методы.
Если вы пробовали выполнить команду
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"
Это позволит сохранить необходимый формат коммитов в вашем репозитории.
Чтобы использовать многострочные комментарии к коммитам в Git с zsh на Mac, вы можете заключить текст в двойные кавычки ("). Затем вы можете просто продолжать вводить текст и нажимать Enter для добавления новых строк. Вы не отправите сообщение в Git, пока не закроете кавычки и не нажмете Enter в конце.
Пример:
git commit -m "Это мой комментарий
к коммиту, который занимает
несколько строк."
После того как вы закроете кавычки и нажмете Enter, ваш коммит будет выполнен с многострочным сообщением. Убедитесь, что вы не забываете закрыть кавычки, иначе команда не завершится корректно.
Как указать приватный SSH-ключ для выполнения команды shell в Git?
Посчитать количество строк в репозитории Git
Как выводить команды оболочки по мере их выполнения
Назначение значений по умолчанию для переменных оболочки одной командой в bash
Как сделать паузу в shell-скрипте на одну секунду перед продолжением?