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

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

git init
git add .
git commit

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

Ответы [ 17 ]

2 голосов
/ 07 апреля 2012

Для тех из вас, кто использует OS X, я обнаружил, что эта команда хорошо работает:
git config --global core.editor "open -t -W"

, который заставит git открыть текстовый редактор по умолчанию (в моем случае это textedit), а затем дождаться выхода из приложения. Имейте в виду, что вам нужно «сохранить», а затем «выйти» textedit, прежде чем коммит пройдет. Есть несколько других команд, с которыми вы можете поиграть, как описано на этой странице:

Библиотека разработчиков Apple - команда Open

Вы также можете попробовать git config --global core.editor "open -e -W", если хотите, чтобы git всегда открывал textedit независимо от того, какой редактор по умолчанию.

2 голосов
/ 11 января 2011

Теперь, когда я изменил свой редактор на emacs, все работает нормально.

Но перед тем, как я установил это, "git commit -a" открывал gedit, но также сразу заканчивался "Отмена коммита из-за пустого сообщения коммита". Сохранение файла из gedit не имело никакого эффекта. Явная установка редактора с помощью "git config --global core.editor" gedit "" привела к тому же результату.

В emacs нет ничего плохого, но из любопытства, почему это не работает с gedit, и есть ли способ заставить его работать?

Спасибо.

2 голосов
/ 07 июня 2010

Я был сбит с толку, потому что я пытался ввести имя файла после: w в VIM. Это не вызывает фиксацию. Вместо этого я продолжал получать сообщение «Отмена коммита из-за пустого сообщения коммита». Не ставьте имя файла после: w. : w сохраняет файл в .git / COMMIT_EDITMSG по умолчанию. Затем: q для выхода для завершения фиксации. Вы можете увидеть результаты с помощью git log.

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

При выполнении контроля версий вы всегда должны объяснять, какие изменения вы внесли. Обычно в первый раз у вас есть комментарий, например «Initial Commit».

Однако в долгосрочной перспективе вы хотите сделать хороший комментарий для каждого коммита. Вы захотите что-то в форме:

Добавлена ​​экспериментальная функция x.

X увеличит производительность особенность Y в состоянии Z. Если вы нужно X активировать его с помощью -x или --feature-экс переключатели. Это адрес функции запроса # 1138.

1 голос
/ 21 октября 2010

Будучи новичком в Терминале, «Escape, а затем ZZ» работали для меня, у меня была эта проблема в течение нескольких месяцев, и я также не мог найти способ ее обойти.

Спасибо TheGeoff за ваш простой совет!

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

Да, убедитесь, что у вас есть разумный редактор. Не уверен, что вы будете редактором по умолчанию, но если, как и я, это nano (скажет где-то ближе к верху после ввода коммита), вам просто нужно ввести комментарий, а затем нажать Ctrl-x, чтобы закончить. Затем нажмите y, а затем Enter, чтобы подтвердить коммит.

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

git diff --name-only
0 голосов
/ 03 июля 2009

Следующее, вероятно, самый простой способ зафиксировать все изменения:

git commit -a -m "Type your commit message here..."

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

...