Как я могу зафиксировать файлы с помощью git? - PullRequest
69 голосов
/ 16 августа 2011

Ни один из уроков не поможет!
Они все делают это, когда они просто предполагают, что я знаю, что делать ..

В настоящее время мое окно терминала начинается с ..

# Please enter the commit message for your changes. Lines starting
# with '#' will be ignored, and an empty message aborts the commit.
# On branch master
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#       deleted:    httpdocs/newsite/manifest/cache/0a432970ba6491fe65dad60b012e5c95_louloumay2011en-1-4dea3186b7f7b.jpg
#       deleted:    httpdocs/newsite/manifest/cache/0a61b5d7a9e97da78fe602e1ad41edb6_5-4dec7c3d57c80.jpg
#       deleted:    httpdocs/newsite/manifest/cache/0afb6a7716a85d0de46cdd03bb30f75f_fifa_panorama_full_page-01_thu-4dea3d1a0e0f5.jpg
#       deleted:    httpdocs/newsite/manifest/cache/0b3bc9be76a5d3e1e36af4b8dcf98658_free2-4df0e2e08761f.jpg
#       deleted:    httpdocs/newsite/manifest/cache/0b6342913b8e599fac76da452af98ec5_si-feb-2009-1-4dea3d1abcb61.jpg
#       deleted:    httpdocs/newsite/manifest/cache/0b9ddc587340f7744e03c4b2dafacf7f_lou-lou-winter-2009-cover-4dea3d1a9b1a0.jpg
#       deleted:    httpdocs/newsite/manifest/cache/0bf64ff8fc22720b3da20d0730fa6a04_chatelaine-dec-2009-4dea3d18daa30.jpg
#       deleted:    httpdocs/newsite/manifest/cache/0bf664e03eb0a2255b69b02aed85add0_summumfeb2011-2-4dea3188766aa.jpg

но нет никакого способа узнать, как сделать то, что они говорят, чтобы сделать здесь ..
http://learn.github.com/p/normal.html

Все, что он говорит, это

Мы просто вводим наш коммитсообщение и выйдите из редактора.

Что это значит?!
То, что вы пишете слово просто , не означает, что это просто ..

Когда я начинаю печатать, он делает странные вещи, говорит «запись» или «вставка», и там около 300 файлов, и он хочет, чтобы я заменил каждую строку сообщением?!?

Помощь!

Я бы использовал для этого их удобное приложение Mac, но если в нем более 20 файлов или около того, оно зависает!
Что с этим случилось?

Ответы [ 8 ]

87 голосов
/ 16 августа 2011

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

Похоже, что ваш редактор по умолчанию Vi или Vim.Причина, по которой при вводе текста происходит «странная штука», заключается в том, что Vi не запускается в режиме вставки - сначала вы должны нажать i на клавиатуре!Если вы не хотите этого, вы можете изменить его на что-то более простое, например:

git config --global core.editor nano

Затем вы загрузите редактор Nano (при условии, что он установлен!), Когда вы фиксируете, что намного большеинтуитивно понятный для пользователей, которые не использовали модальный редактор, такой как Vi.

Этот текст, который вы видите на экране, просто напоминает вам, что вы собираетесь совершить.Строки предшествуют #, что означает, что они являются комментариями, то есть Git игнорирует эти строки, когда вы сохраняете ваше сообщение коммита.Вам не нужно вводить сообщение в файл - просто введите текст в верхней части буфера редактора.

Чтобы обойти редактор, вы можете указать в качестве аргумента сообщение фиксации, например,

git commit -m "Added foo to the bar"
24 голосов
/ 16 августа 2011

Звучит так, как будто единственной проблемой здесь является то, что по умолчанию запускается редактор vi или vim, с которым вы не знакомы. (Как быстрый совет, чтобы выйти из этого редактора без сохранения изменений, несколько раз нажмите Esc , а затем введите : , q , ! и Введите .)

Есть несколько способов настроить редактор по умолчанию, и вы не указали, какую операционную систему вы используете, поэтому сложно порекомендовать ее. Я бы предложил использовать:

 git config --global core.editor "name-of-your-editor"

... который устанавливает глобальные предпочтения git для конкретного редактора. В качестве альтернативы вы можете установить переменную окружения $EDITOR.

13 голосов
/ 20 марта 2016

в стандартном редакторе Vi в этой ситуации вы должны

  1. нажмите Esc
  2. тип ": wq" (без кавычек)
  3. Нажмите Enter
13 голосов
/ 16 августа 2011

Я не знаю вашу системную среду, но кажется, что вы ввели:

git commit

И ваш редактор по умолчанию запущен.В худшем случае (для вас) это могло бы быть vim:)

Если вы не знаете, как выйти из vim, используйте: q.

Если у вас возникнут дополнительные проблемы, выможно использовать

git commit -m 'Type your commit message here'
11 голосов
/ 16 августа 2011

Команда для фиксации всех измененных файлов:

git commit -a -m 'My commit comments'

-a = все отредактированные файлы

-m = следующая строка является комментарием.

Этобудет совершать ваши локальные диски / папки репо.Если вы хотите отправить свои изменения на git-сервер / удаленно размещенный сервер, после вышеуказанной команды введите:

git push

Шпаргалка GitHub очень удобна.

2 голосов
/ 04 февраля 2015

Это происходит, когда вы не включаете сообщение, когда пытаетесь зафиксировать, используя:

git commit

Запускает среду редактора. Выйдите из него, набрав :q! и нажав Enter.

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

git commit -m 'Initial commit'
2 голосов
/ 16 августа 2011

Git использует «индекс» для подготовки коммитов. Вы можете добавлять и удалять изменения из индекса перед фиксацией (в вашей вставке вы уже удалили ~ 10 файлов с git rm). Когда индекс будет выглядеть так, как вам нужно, запустите git commit.

Обычно это срабатывает vim. Чтобы вставить текст, нажмите i, <esc> возвращается в обычный режим, нажмите ZZ, чтобы сохранить и выйти (ZQ, чтобы выйти без сохранения). вуаля, вот твой коммит

1 голос
/ 16 августа 2011

Похоже, что все правки уже являются частью индекса.Поэтому для фиксации просто используйте команду commit

git commit -m "My Commit Message"

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

httpdocs/newsite/manifest/cache/*
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...