Я использую git из командной строки и пытаюсь добавить разрыв строки в сообщение фиксации (используя git commit -m ""), не переходя в vim
.
Возможно ли это?
Конечно, как это сделать, зависит от вашей оболочки. В 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"
Просто введите и нажмите Enter, когда вы хотите новую строку, символ " > " означает, что вы нажали Enter, и появилась новая строка. Другие ответы также работают.
Если вы просто хотите, скажем, строку заголовка и строку содержимого, вы можете использовать:
git commit -m "My head line" -m "My content line."
gitk
это отображается как отдельные сообщения, но спасибо, что оно работает.
-m
для каждой строки. Ницца!
Вы должны иметь возможность использовать
git commit -m $'first line\nsecond line'
В Bash manual:
Слова формы $'string' обрабатываются специально. Слово расширяется до строка с замененными символами с обратной косой чертой, как указано в Стандарт ANSI C.
Это включает поддержку новых строк, как показано выше, плюс шестнадцатеричный код и коды Unicode и другие. Перейдите в связанный раздел, чтобы просмотреть список символов с обратным слэшем.
echo $'one\ntwo'
?
Добавление разрывов строк к вашему 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")"
работает, но его не очень красиво. Вы настраиваете команду git-commitlb
в PATH
, которая делает что-то вроде этого:
#!/bin/bash
message=$1
git commit -m"$(echo -e "$message")"
и используйте его следующим образом:
git commitlb "line1\nline2\nline3"
Слово предупреждения, я чувствую, что общее соглашение состоит в том, чтобы иметь итоговую строку в качестве первой строки, а затем две разрывы строк, а затем расширенное сообщение в сообщении фиксации, поэтому выполнение чего-то вроде этого нарушит это условность. Конечно, вы можете:
git commitlb "line1\n\nline2\nline3"
Я использую zsh на Mac, и я могу отправлять сообщения с несколькими строками в двойных кавычках ("). В основном я продолжаю печатать и нажимать return для новых строк, но сообщение не отправляется на git, пока я не закрою кавычки и возврат.
Я надеюсь, что это не ведет слишком далеко от поставленного вопроса, но не будет настройка редактора по умолчанию, а затем с помощью
git commit -e
будет намного комфортнее?
-e
и он все равно откроет редактор
-m <msg>
--message = < тзд >
Используйте заданный <msg> как сообщение фиксации. Если задано несколько параметров -m, их значения объединяются как отдельные абзацы.
Итак, если вы ищете группировку нескольких сообщений фиксации, это должно выполнить эту работу.
git commit -m "commit message1" -m "commit message2"
Вы можете использовать git commit -m "$(echo)"
или git commit -m $'\n'
Если вы используете bash, нажмите C-x C-e
(Ctrl + x Ctrl + 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
.
git commit -e
.
git commit
, и он откроет редактор с шаблоном сообщения фиксации.
Не нужно усложнять материал. После того, как -m "текст... следующая строка будет получена нажатием ENTER. Когда будет нажата клавишa > . Когда вы закончите, просто поставьте" и нажмите ENTER
$ 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
Anothere 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_EDITOR="emacs" git commit -m 'paragraph1' -m 'paragraph2' -e
поможет вам избежатьvim
.