#git #message #commit
#git #Сообщение #фиксация
Вопрос:
Я знаю, как добавить несколько строк уже в мое сообщение git commit.
Я использую:
git commit -m "
>Text here...
>[Accidental Enter Key]
Однако, что, если я по ошибке нажал кнопку ввода и хочу вернуться к предыдущей строке? Есть ли такой способ?
Комментарии:
1. С помощью чего вы редактируете сообщение?
2. @AdamSchiavone Я использую Git Bash.
3. Лично, когда это происходит со мной, я просто соглашаюсь с этим, а затем делаю
git commit --amend
, чтобы исправить сообщение.4. Спасибо, я приму к сведению ваши предложения!
Ответ №1:
Редактирование строки чтения GNU иногда бывает дурацким. В ситуации, когда вы случайно попали Enterв середину строки, заключенной в кавычки в Bash, просто нажмите Ctrl-C. Часть командной строки перед последней Enterсохраняется в истории. Вы просто теряете самую последнюю строку: все, что вы ввели с момента последнегоEnter. После этого Ctrl-Cвы можете вспомнить строку и отредактировать ее. На этот раз вы можете переместить курсор назад по цитате: вы можете отступить ненужные многострочные части, чтобы объединить их в одну строку.
$ echo "abc
> oops hit Enter, didn't mean to
> oops, I did it again!^C
Теперь стрелка вверх:
$ echo "abc
oops hit Enter, didn't mean to_ <- cursor is here (lost the last line)
^
`- no > characters here now, and you can move the cursor left
to just before the "oops" and hit backspace to merge it with
the "abc.
Непонятно, почему Readline настолько непоследователен таким образом: почему есть
>
режим продолжения строки, но затем обычное редактирование, когда вы вспоминаете об этом; может быть, есть способ настроить эту недружелюбную >
глупость. Я думаю, что это существует ради новичков: >
приглашение — это громкий и четкий сигнал, указывающий: «Эй, у вас несбалансированная цитата или что-то в этом роде, и поэтому я запрашиваю у вас дополнительные данные». Тем не менее, это не причина не разрешать пользователю, по крайней мере, отступать назад >
после .
В любом случае, в этой ситуации вы всегда можете просто завершить фиксацию непреднамеренным сообщением, а затем немедленно выполнить
$ git commit --amend -m "corect message" # oops
$ git commit --amend -m "correc message" # darn
$ git commit --amend -m "correct message!"
Наконец, получите клавиатуру, на которой нет крошечной клавиши обратного пробела и огромной клавиши ввода прямо под ней! Эти идиотские клавиатуры — основная причина, по которой вы случайно нажимаете Enter: именно тогда, когда вы хотите отступить, чтобы исправить что-то неправильное. Представьте, если бы педали газа были прямо рядом с тормозом!
Комментарии:
1. Я попробовал ваше первое предложение с помощью Ctrl C, но оно отменяет все это в Git Bash. Но, спасибо! Я думаю, мне просто нужно быть осторожным с этим. Чувак, я бы хотел, чтобы был более простой способ вернуться к предыдущей строке. В любом случае, я действительно ценю ваш ответ и предложения. Приветствую, Каз!
2. Я попробовал ваше первое предложение с помощью Ctrl C (на mac), но оно отменяет все это в командной строке Git. Но когда я сделал
git log
, я все равно не видел коммит …? Не знаю, было ли это потому, что я не добавил конечную кавычку(")
.
Ответ №2:
Просто используйте
git commit
И он откроет текстовый редактор (обычно vim) для вашего сообщения о фиксации.
Комментарии:
1. Примите к сведению ваше предложение, сэр! Я думаю, просто нет конкретного способа достичь того, чего я хочу, который уже является родным в Git Bash.