Git commit открывает пустой текстовый файл, для чего? - PullRequest
86 голосов
/ 13 сентября 2008

Во всех прочитанных мною руководствах по Git говорится, что вы можете сделать:

git init
git add .
git commit

Когда я это делаю, мне открывают большой текстовый файл. Кажется, что ни одно из руководств не решает эту проблему, поэтому я не знаю, что делать с файлом или что в него вставить, если что-нибудь.

Ответы [ 17 ]

121 голосов
/ 10 февраля 2009

Вы должны поместить сообщение коммита в этот текстовый файл, затем сохранить и выйти.

Вы можете изменить текстовый редактор по умолчанию, который git использует с этой командой:

git config --global core.editor "nano"

Вы должны изменить nano на любую команду, которая обычно открывает ваш текстовый редактор.

63 голосов
/ 13 сентября 2008

Как упомянул Бен Коллинз , без аргумента -m "..." для ввода встроенного коммита (что, как правило, плохая идея, так как побуждает вас быть кратким), этот «большой текстовый файл», который открыто окно, в котором можно набрать сообщение коммита.

Обычно рекомендуется написать резюме в первой строке, пропустить строку, а затем написать более подробные примечания ниже; это помогает программам, которые делают такие вещи, как отправка сообщений о фиксации по электронной почте с соответствующей строкой темы и полным списком изменений, внесенных в тело.

Вместо изменения переменной оболочки EDITOR вы также можете изменить используемый редактор, добавив дополнительные строки в файл ~/.gitconfig:

[core]
    editor = emacs
    excludesfile = /Users/will/.gitignore

Эта вторая строка на самом деле не имеет ничего общего с вашей проблемой, но я считаю ее действительно полезной, поэтому я могу заполнить свой файл ~/.gitignore всеми этими типами файлов, которые я знаю Я никогда, никогда не захочу зафиксировать в хранилище.

36 голосов
/ 13 сентября 2008

Открываемый текстовый файл является сводкой текущей операции фиксации. Команда git commit помещает вас в этот файл, чтобы вы могли добавить сообщение фиксации вверху файла. После добавления сообщения просто сохраните и выйдите из этого файла.

В этой команде также есть ключ "-m msg", который позволяет добавить сообщение коммита в командной строке.

15 голосов
/ 21 апреля 2011

Предполагая, что ваш редактор по умолчанию работает с vi / vim, вы можете выйти из редактора сообщений фиксации, набрав:

:x

, который сохранит и закроет файл сообщения о коммите. Затем вы вернетесь к нормальному разделу команды git.

Дополнительные команды vi:
http://www.lagmonster.org/docs/vi.html

14 голосов
/ 06 сентября 2009

Если вы работаете в Mac OS X и используете BBEdit, вы можете установить его в качестве редактора сообщений для фиксации:

git config --global core.editor "bbedit -w"

После завершения редактирования сохраните и закройте файл, и git будет использовать его для комментариев.

12 голосов
/ 21 января 2009

Как все уже сказали, это именно то, где вы добавляете свой комментарий коммита - но для некоторых это может все еще сбивать с толку esp, если вы не настроили свои настройки редактора, и вы не знаете, что такое VI : тогда вы можете быть в шоке, потому что вы будете думать, что вы все еще в GIT-Bash

В этом случае вы на самом деле находитесь в текстовом редакторе с некоторыми интересными способами работы с вещами, и этот набор команд может помочь вам, чтобы вы могли пройти первый коммит и затем настроить редактор, с которым вы знакомы, или используйте его как возможность узнать, как его использовать.

11 голосов
/ 13 сентября 2008

Опция -m commit позволяет вам ввести сообщение коммита в командной строке:

git commit -m "my first commit"
7 голосов
/ 20 марта 2013

Когда вы создаете новый коммит, git запускает текстовый редактор и записывает некоторые вещи в него.

С помощью этого текстового редактора вы должны написать сообщение о коммите, которое будет связано с вашим созданным вами фешлом.

После этого сохраните и выйдите из текстового редактора. Git будет использовать то, что вы написали как сообщение о коммите.

Сообщение коммита имеет особую структуру, описанную следующим образом:

Первая строка сообщения о фиксации используется в качестве заголовка сообщения (или заголовка). Предпочитаемая длина заголовка коммита составляет менее 40 символов, так как это количество символов, которое github отображает на вкладке Commits данного репозитория перед его усечением, что некоторые люди находят раздражающим.

При составлении заголовка использование заглавного глагола настоящего времени для первого слова является обычной практикой, хотя и вовсе не обязательным.

Одна новая строка обозначает заголовок и текст сообщения.

Тело может состоять из чего угодно. Обзор изменений, внесенных вашим коммитом, является обоснованным. Некоторые сторонние приложения используют информацию, включающую в себя текст сообщений коммитов, чтобы установить различные виды хуков (я думаю, Gerrit и Pivotal Tracker, чтобы назвать два).

Вот короткий и приятный пример. Ведущий # обозначает комментарий.

Gitignore index.pyc

Ignore gunicorn generated binary file
# Please enter the commit message for your changes. Lines starting
# with '#' will be ignored, and an empty message aborts the commit.
# On branch dev
# Your branch is ahead of 'origin/dev' by 10 commits.
#   (use "git push" to publish your local commits)
#
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#   modified:   .gitignore
#

Здесь один мистер Торвальдс полагает, что делает хороший коммит.

И здесь Tpope делает то же самое.

Как указывалось в нескольких других ответах, изменение редактора по умолчанию выполняется в одной строке в командной строке.

Для моих предпочтений:

git config --global core.editor "vim"
6 голосов
/ 23 сентября 2009

Попробуйте Escape, а затем ZZ, после того, как вы закончите вводить ваше сообщение. Как уже говорили другие, когда вы запускаете эту команду commit, на самом деле запускается текстовый редактор для ввода сообщения. В моем случае (OS X) это был VI, который я разобрался после нескольких копаний. В этом случае нажмите Escape, чтобы перейти в «командный» режим (в отличие от режима INSERT) и введите ZZ. Я уверен, что есть другие способы выполнить задачу, но это сделало это для меня. Никогда не использовавший VI или emacs, это не было для меня очевидным и не упоминалось ни в одном из руководств для начинающих, которые я использовал. Надеюсь, это поможет.

3 голосов
/ 13 сентября 2008

Команда git commit откроет редактор, указанный в переменной окружения EDITOR, чтобы вы могли ввести комментарий коммита. В системе Linux или BSD это должно быть vi по умолчанию, хотя любой редактор должен работать.

Просто введите ваши комментарии и сохраните файл.

...