Commit/Push. Сохранение изменений и отправка изменений на сервер.
Сохранение изменений
Все файлы добавлены в Staging Area и Git начал их отслеживать. Теперь можно сделать первый коммит.
Каждый
коммит сохраняет актуальное состояние файлов, и вы можете сравнивать
разные состояния от коммита к коммиту. Пока что коммиты будут сохранены
локально, на вашем компьютере, и доступны только вам.
Отправим коммит и сопроводим его комментарием.
Для этого есть команда
git commit
(англ. commit, «бросить в бой»). Ключ -m
(от англ. message, «послание») дает возможность снабдить коммит примечанием, которое пишется в кавычках после ключа:Скопировать кодBASHgit commit -m "My first commit"
# сделали первый коммит
# текст комментария: "My first commit"
# комментарии лучше писать латиницей
В
комментариях описывайте, какие изменения были сделаны в коммите, иначе
через неделю вы уже не вспомните, что и зачем было написано. Git
понимает кириллицу, но комментировать по-английски — хороший тон:
глобализация.
После нажатия [Enter] коммит будет сохранён и появится отчёт:
Скопировать кодBASH[master (root-commit) ab98382] My first commit 1 files changed, 1 insertions(+), 0 deletions(-)
Здесь в первой строке вы видите свой комментарий "My first commit", а перед ним, в квадратных скобках, информация о коммите:
master — название ветви, в которой сделан коммит (о ветвлении поговорим позднее);
root-commit
(англ. «корневой коммит») — означает, что этот коммит самый первый.
Продолжая работу в той же папке, вы больше не увидите этого сообщения.
контрольная сумма или "хеш"
— уникальный идентификатор, присвоенный коммиту. Для удобства коммиты
идентифицируются по первым семи символам контрольной суммы. В нашем
примере это
ab98382
.Ниже информация о файлах коммита:
- изменён один файл (1 files changed),
- в изменённых файлах добавлена 1 строка, и ни одна не удалена (1 insertions(+), 0 deletions(-) ),
В директории проекта создайте новый файл
.gitignore
и добавьте в него текст README.md
. Сделайте это обычными средствами — через любой текстовый редактор и Проводник или Finder.А теперь, уже через bash, сделайте коммит с комментарием "Added .gitignore file".
Изменение сделанного коммита
Добавляя
в репозиторий новый файл, можно не делать новый коммит. Достаточно
добавить изменения к последнему коммиту. Для этого есть опция
--amend
(англ. amend, «исправить»): git commit --amend -m "Текст вашего комментария"
. Эта команда добавит изменённые файлы в последний сделанный коммит, а с дополнительным флагом
-m
ещё и обновит комментарий:Скопировать кодBASH# делаем первый коммит, в кавычках пишем комментарий
git commit -m "First commit: change program.py"
# добавили файлы в индекс Git
git add --all
# добавили эти файлы к предыдущему коммиту
git commit --amend -m "First commit: new files added"
Пора на сервер
Все
сделанные коммиты сохранены локально, на вашем компьютере. Чтобы ваша
работа стала доступна вашим коллегам (а на Практикуме — код-ревьюерам и
наставникам), нужно отправить изменения на сервер, куда есть доступ у
всей команды.
Для отправки локальных изменений на сервер GitHub, выполните команду
Скопировать кодBASHgit push
Git запомнил, откуда вы клонировали репозиторий, и поэтому не нужно указывать, куда именно отправлять изменения.
На сленге эту операцию называют «запушить» (от англ. push, «протолкнуть»).
Готово! Теперь ваши изменения смогут увидеть все, кто имеет доступ к репозиторию.
Игнорирование файлов
Не
всё в рабочей папке нужно отслеживать: некоторые файлы и директории не
нужно видеть даже в списке неотслеживаемых файлов. Для этого в Git есть
отличный инструмент.
Ранее мы уже создали в корне проекта текстовый файл .gitignore. В macOS и Linux файлы, название которых начинается с точки — скрытые.
Достаточно
указать в нём название директории или имя файла, и Git перестанет их
видеть. Если игнорируемый файл находится не в корне проекта, нужно
указать путь до него.
В тексте файла .gitignore можно оставлять комментарии, строка комментария начинается с символа решетки
#
:Скопировать кодBASH# игнорировать файл README.md
README.md
# игнорировать файл side.txt в директории build
build/side.txt
# игнорировать все файлы с расширением .doc
*.doc
Как одной командой сделать коммит и комментарий к нему?
Верно: после флага -m в кавычках напишите свой комментарий
Как добавить файлы к уже сделанному коммиту
Верно: эта команда добавляет файлы к предыдущему коммиту