14 ответов:
конечно, как это делается, зависит от вашей оболочки. В Bash вы можете использовать одинарные кавычки вокруг сообщения и можете просто оставить цитату открытой, что заставит Bash запрашивать другую строку, пока вы не закроете цитату. Вот так:
git commit -m 'Message goes here'кроме того, вы можете использовать "здесь документ":
git commit -F- <<EOF Message goes here EOF
используя Git из командной строки с Bash вы можете сделать следующее:
git commit -m "this is > a line > with new lines > maybe"просто введите и нажмите клавишу введите если вы хотите новую строку, символ ">" означает, что вы нажали введите, и есть новая строка. Работают и другие ответы.
Если вы просто хотите, скажем, заголовок и строку содержимого, вы можете использовать:
git commit -m "My head line" -m "My content line."
вы должны быть в состоянии использовать
git commit -m $'first line\nsecond line'С Bash manual:
слова вида $'строка' рассматриваются специально. Слово расширяется до строка, С обратной косой чертой-экранированные символы заменяются, как указано Стандарт ANSI Си.
Это включает в себя поддержку новых строк, как показано выше, а также шестнадцатеричные и Unicode коды и другие. Перейти в связанный раздел, чтобы просмотреть список обратная косая черта-экранированные символы.
добавление разрывов строк в git commit
попробуйте создать многострочное сообщение фиксации следующим образом:
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вы должны в конечном итоге с чем-то вроде этого:
скриншот из примера, который я настроил с помощью PowerShell с Poshgit.
делать что-то вроде
git commit -m"test\ntest"не работает, но что-то вроде
git commit -m"$(echo -e "test\ntest")"работает, но это не очень красиво. Вы создали в своем
PATHчто делает что-то вроде этого:#!/bin/bash message= git commit -m"$(echo -e "$message")"и использовать его так:
git commitlb "line1\nline2\nline3"слово предупреждения, у меня есть ощущение, что общее соглашение должно иметь итоговую строку в качестве первой строки, а затем два разрыва строки, а затем расширенное сообщение в сообщении фиксации, поэтому сделав что-то подобное, вы нарушите эту конвенцию. Вы могли бы, конечно, сделать:
git commitlb "line1\n\nline2\nline3"
Я надеюсь, что это не ведет слишком далеко от запостил вопрос, но настройки редактора по умолчанию и затем с помощью
git commit -eможет быть гораздо более удобным.
Я использую zsh на Mac, и я могу отправлять многострочные сообщения фиксации в двойных кавычках ("). В основном я продолжаю печатать и нажимать return для новых строк, но сообщение не отправляется в Git, пока я не закрою кавычки и не вернусь.
- m
--сообщение=
Используйте данныйв качестве сообщения фиксации. Если несколько -mпараметры заданы, их значения объединены в отдельные абзацы.Итак, если вы ищете группировку нескольких сообщений фиксации, это должно сделать работу:
git commit -m "commit message1" -m "commit message2"
если вы используете Bash, нажмите
C-x C-e(Ctrl+xCtrl+e), и он откроет текущую команду в вашем предпочтительном редакторе.вы можете изменить предпочтительный редактор, настроив
VISUALиEDITOR.вот что у меня в моем
.bashrc:export ALTERNATE_EDITOR='' export EDITOR='emacsclient -t' export VISUAL='emacsclient -c' export SUDO_EDITOR='emacsclient -t'
лично я считаю, что проще изменять сообщения после того, как в
vi(или независимо от того, что ваш редактор git по выбору), а не в командной строке, выполнивgit commit --amendсразу послеgit commit.
нет необходимости усложнять вещи. После
-m "text...следующая строка получается нажатием введите. Когда введите нажата>появляется. Когда вы закончите, просто поставить"и нажать введите:$ git commit -m "Another way of demonstrating multicommit msg > > 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 ...
вот список не решения для Windows со стандартным cmd.exe shell (чтобы сэкономить вам время проб и ошибок!):
git commit -m 'Helloвведите не работает: он не будет просить новую строку
git commit -m "Helloвведите idem
git commit -m "Hello^введите idem
git commit -m 'Hello^введитеWorld'похоже, работает потому что он спрашивает "больше?" и позволяет написать новую строку, но, наконец, при выполненииgit logвы увидите, что это все-таки однострочное сообщение...TL; DR: даже если на Windows, разбор командной строки работает по-разному и
^позволяет многострочный ввод, это не поможет здесь.наконец-то
git commit -eвероятно, это лучший вариант.

Comments