Проблеми з введенням повідомлення про Git commit з Vim


146

ОС: Windows

я пишу

$ git commit

тоді

"# Введіть повідомлення про виконання"

Я пишу якийсь текст, наприклад

"Додано перевірку форми"

Натисніть клавішу Enter, і це не зафіксовано. Потім я натискаю Shift + Enter, Ctrl + Enter, Alt + Enter - все ще не зафіксовано.

Я думаю, що це нерозумно, але що мені робити?


Нема проблем. Але ваше питання, ймовірно, приверне увагу до Super User, що є більш тематичним для цього питання щодо непрограмування: superuser.com/questions/tagged/git
bzlm

Відповіді:


232

Якщо це VIM для Windows, ви можете зробити наступне:

  • введіть своє повідомлення, дотримуючись поданих вказівок
  • натисніть, Escщоб переконатися, що ви вийшли з режиму вставки
  • потім введіть :wqEnterабо ZZ.

Зауважте, що у VIM часто існує кілька способів зробити одне. Тут є незначна різниця. :wqEnterзавжди записує поточний файл перед його закриттям, в той час як ZZ, :xEnter, :xiEnter, :xitEnter, :exiEnterі :exitEnterтільки писати , якщо документ змінено .
Усі ці синоніми просто мають різну кількість натискань клавіш.



1
Коли я входжу, :wqя бачу таке повідомлення: ".git / COMMIT_EDITMSG" 54L, 2316C написано Перервати фіксацію через порожнє повідомлення про фіксацію.
канна

Переконайтеся, що ви додали повідомлення. Коли з'явиться запит, введіть щось на кшталт "моє повідомлення тут" (ви перейдете в --встановити режим - я припускаю, натисніть esc, щоб залишити його). Коли ви закінчите, і вийдете з режиму вставки, тоді введіть "ZZ" (столиця ZZ)
Kpmurphy91,

22
Чому, хто придумав це? : wq Enter чи ZZ звучить божевільно.
дезман

1
iкоманда почала вставки тексту повідомлення була надзвичайно корисною. Завдяки @Matt Greer за це. Ця відповідь була хорошою для решти кроків.
ps2goat

47

Я припускаю, що ви використовуєте msys git. Якщо ви є, редактор, який вискакує, щоб написати ваше повідомлення про виконання, - vim. Vim спочатку не є доброзичливим. Ви можете скористатись іншим редактором. Якщо ви хочете використовувати інший редактор, подивіться на цю відповідь: Як я можу використовувати Notepad ++ (або інший) за допомогою msysgit?

Якщо ви хочете використовувати vim, введіть iсвоє повідомлення. Коли щасливо вдарив ESC. Тоді наберіть :wq, і git буде тоді задоволений.

Або просто наберіть, git commit -m "your message here"щоб пропустити редактор взагалі.


16
Чи завжди вім дружній? Або люди просто звикають до її недоброзичливості?
Райан Лунді

8
vim є доброзичливим, як тільки ти зрозумієш, як це працює. Це насправді дуже логічно і добре продумано.
Метт Грір

Якщо я хочу використовувати символи, які потребують втечі (наприклад, апострофи) у повідомленні фіксації, я завжди використовую редактор vim, оскільки це менш дратує. В іншому випадку я майже завжди просто пишу повідомлення про фіксацію як частину команди.
Девід Демар

Це чудово, коли вам потрібно внести зміни до повідомлення про фіксацію
shinzou

15

Ви пробували щойно: git commit -m "Повідомлення тут"

Тож у вашому випадку:

git commit -m "Form validation added"

Після додавання файлів, звичайно.


1
Ваш варіант хороший. Але я хочу піти шляхом написаного (google Translator)
aTei

Не хвилюйтесь, я забув, що після цієї команди був редактор. Я рідко коли-небудь просто виконую git виконувати без -m "Повідомлення"
Tony,

1

Як правило, git commitпідключає інтерактивний редактор (на Linux і, можливо, Cygwin, який визначається вмістом $EDITORзмінної вашого середовища) для редагування повідомлення про фіксацію. Коли ви зберігаєте та виходите, комісія завершується.

Ви повинні переконатися, що зміни, які Ви намагаєтеся здійснити, були додані до індексу Git; це визначає, що вчинено. Детальну інформацію про це див. На http://gitref.org/basic/ .


0

Ви можете змінити символ коментаря на щось, крім # подібного:

git config --global core.commentchar "@"
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.