Во всех руководствах по Git, которые я читал, говорится, что вы можете:
git init
git add .
git commit
Когда я это делаю, открывается большой текстовый файл. Похоже, что ни одно из руководств не рассматривает этот вопрос, поэтому я не знаю, что делать с файлом или что в него вставлять, если что-нибудь.
git
git-commit
случайный
источник
источник
--global
чтобы изменить значение по умолчанию?--global
изменит его для текущего пользователя и--system
изменит его для всех на этом компьютере.Как упоминал Бен Коллинз , без
-m "..."
аргумента для ввода встроенной фиксации (что обычно является плохой идеей, поскольку побуждает вас быть кратким), этот «большой текстовый файл», который открывается, представляет собой окно, в котором можно ввести сообщение фиксации .Обычно рекомендуется написать резюме в первой строке, пропустить строку, а затем написать более подробные примечания ниже; это помогает программам, которые делают такие вещи, как отправка сообщений о фиксации по электронной почте с соответствующей строкой темы и полным списком изменений, сделанных в теле.
Вместо изменения
EDITOR
переменной оболочки вы также можете изменить используемый редактор, добавив дополнительные строки в свой~/.gitconfig
файл:Эта вторая строка на самом деле не имеет ничего общего с вашей проблемой, но я считаю ее действительно полезной, поэтому я могу заполнить свой
~/.gitignore
файл всеми теми типами файлов, которые, как я знаю, я никогда и никогда не захочу фиксировать в репозитории.источник
Открываемый текстовый файл представляет собой сводку текущей операции фиксации. Команда git commit переносит вас в этот файл, чтобы вы могли добавить сообщение о фиксации вверху файла. После того, как вы добавили свое сообщение, просто сохраните и выйдите из этого файла.
В этой команде также есть переключатель «-m msg», который позволяет вам добавить сообщение фиксации в командную строку.
источник
Если вы работаете в Mac OS X и используете BBEdit, вы можете настроить его как предпочтительный редактор для сообщений фиксации:
После завершения редактирования сохраните и закройте файл, и git будет использовать его для комментариев.
источник
Предполагая, что в вашем редакторе по умолчанию используется vi / vim, вы можете выйти из редактора сообщений фиксации, набрав:
который сохранит и выйдет из файла сообщения фиксации. Затем вы вернетесь в обычный раздел команд git.
Другие команды vi:
http://www.lagmonster.org/docs/vi.html
источник
esc
чтобы перейти в командный режим, прежде чем вводить:x
для сохранения и выхода.Как все уже было сказано, это именно то место, где вы добавляете свой комментарий к фиксации - но для некоторых это все еще может сбивать с толку, особенно если вы не настроили параметры своего редактора и не знаете, что такое VI : тогда вас может шок , потому что вы будете думать, что все еще находитесь в GIT-Bash
В этом случае вы фактически находитесь в текстовом редакторе с некоторыми интересными способами работы с вещами, и этот набор команд может помочь вам, чтобы вы могли пройти свою первую фиксацию, а затем настроить редактор, с которым вы знаком, или использовать его как возможность узнать, как им пользоваться.
источник
Параметр
-m
фиксации позволяет ввести сообщение фиксации в командной строке:источник
Когда вы создаете новый коммит, git запускает текстовый редактор и записывает в него кое-что.
Используя этот текстовый редактор, вы намерены написать сообщение о фиксации, которое будет связано с вашей физически созданной фиксацией.
После этого сохраните и выйдите из текстового редактора. Git будет использовать то, что вы написали, в качестве сообщения фиксации.
Сообщение фиксации имеет особую структуру, описанную следующим образом:
Первая строка сообщения фиксации используется как заголовок (или заголовок) сообщения. Предпочтительная длина заголовка коммита составляет менее 40 символов, поскольку это количество символов, которое github отображает на вкладке «Коммиты» данного репозитория перед его усечением, что некоторых людей раздражает.
При составлении заголовка использование в качестве первого слова глагола в настоящем времени с большой буквы является обычной практикой, хотя и не требуется.
Одна новая строка очерчивает заголовок и тело сообщения.
Тело может состоять из чего угодно. Обзор изменений, внесенных вашей фиксацией, является разумным. Некоторые сторонние приложения используют информацию, включенную в тело сообщений фиксации, чтобы активировать различные виды ловушек (я думаю, Gerrit и Pivotal Tracker, чтобы назвать два).
Вот короткий и приятный пример. Ведущий
#
обозначает комментарий.Здесь некий мистер Торвальдс высказывает свое мнение о том, что делает хорошие обязательства.
И здесь Тпопе поступает так же.
Как указано в нескольких других ответах, изменение редактора по умолчанию является однострочным в командной строке.
На мой выбор:
источник
После ввода сообщения попробуйте Escape, затем ZZ. Как говорили другие, когда вы запускаете эту команду фиксации, она фактически запускает текстовый редактор для ввода сообщения. В моем случае (OS X) это был VI, который я понял после некоторого покопания. В этом случае нажмите Escape, чтобы перейти в «командный» режим (в отличие от режима INSERT), введите ZZ. Я уверен, что есть и другие способы выполнить эту задачу, но это помогло мне. Поскольку я никогда не использовал VI или emacs, это было не очевидно для меня и не упоминалось ни в одном из руководств для начинающих, которые я использовал. Надеюсь, это поможет.
источник
Команда
git commit
откроет редактор, указанный вEDITOR
переменной среды, чтобы вы могли ввести комментарий фиксации. В системе Linux или BSD это должен быть vi по умолчанию, хотя любой редактор должен работать.Просто введите свои комментарии и сохраните файл.
источник
Я был сбит с толку, потому что все время пытался ввести имя файла после: w в VIM. Это не вызывает фиксации. Вместо этого я продолжал получать сообщение «Прерывание фиксации из-за пустого сообщения фиксации». Не ставьте имя файла после: w. : w по умолчанию сохраняет файл в .git / COMMIT_EDITMSG. Затем: q для выхода для завершения фиксации. Вы можете увидеть результаты с помощью git log.
источник
Теперь, когда я сменил редактор на emacs, все работает нормально.
Но до того, как я установил это, «git commit -a» открывал gedit, но сразу же заканчивался сообщением «Прерывание фиксации из-за пустого сообщения фиксации». Сохранение файла из gedit не повлияло. Явная установка редактора с помощью «git config --global core.editor« gedit »» дала тот же результат.
В emacs нет ничего плохого, но из любопытства, почему это не работает с gedit, и есть ли способ заставить его работать?
Спасибо.
источник
git config --global core.editor "gedit -s"
Для тех из вас, кто использует OS X, я обнаружил, что эта команда работает хорошо:
git config --global core.editor "open -t -W"
что заставит git открыть текстовый редактор по умолчанию (в моем случае - textedit), а затем ждать, пока вы выйдете из приложения. Имейте в виду, что вам нужно «Сохранить», а затем «Выйти», прежде чем фиксация будет выполнена. Есть еще несколько команд, с которыми вы можете поиграть, как подробно описано на этой странице:
Библиотека разработчика Apple - команда открытия
Вы также можете попробовать
git config --global core.editor "open -e -W"
, хотите ли вы, чтобы git всегда открывал textedit, независимо от того, какой редактор используется по умолчанию.источник
Да, убедитесь, что у вас есть разумный набор редакторов. Не уверен, каким будет ваш редактор по умолчанию, но если, как и я, это nano (будет сказано где-то в верхней части после того, как вы наберете фиксацию), вам просто нужно ввести комментарий, а затем нажать Ctrl-x, чтобы закончить. Затем нажмите y, а затем нажмите Enter, чтобы подтвердить фиксацию.
Кроме того, если вы хотите увидеть простой список файлов, которые вы будете фиксировать, а не огромный список различий, попробуйте заранее
источник
Выполняя контроль версий, вы всегда должны объяснять, какие изменения вы внесли. Обычно в первый раз у вас появляется такой комментарий, как «Начальная фиксация».
Однако в конечном итоге вы хотите делать хороший комментарий для каждой фиксации. Вам понадобится что-то в форме:
источник
Так как я был новичком в Терминале, «Escape and then ZZ» сработал для меня, у меня была эта проблема в течение нескольких месяцев, и я также не мог найти способ ее обойти.
Спасибо TheGeoff за простой совет!
источник
Вероятно, самый простой способ зафиксировать все изменения:
Конечно, есть более подробные способы фиксации, но это должно помочь вам начать.
источник