first-project
Тренировочный проект для работы с Git.
Тренировочный проект для курса Git от yandex практикум
Иннициализация репозитория
$ git init # создали репозиторий
Переименовать главную ветку репозитория из master в main
$ git branch -M master main
Проверить состояние репозитория
$ git status
Подготовить файлы к сохранению
$ git add filename.ext
Выполнить коммит
$ git commit -m 'Message for commit'
Просмотреть историю коммитов
$ git log
Git преобразует информацию о коммитах с помощью алгоритма SHA-1 и для каждого из них рассчитывает уникальный идентификатор — хеш. Хеш — основной идентификатор коммита и позволяет узнать его автора, дату и содержимое закоммиченных файлов. Все хеши, а также таблицу соответствий хеш → информация о коммите Git хранит в папке .git.
Можно вызвать не только полный лог, но и сокращённый — это делается командой
$ git log --oneline
В сокращённом логе выводятся сокращённые хеши — их можно использовать точно так же, как и полные.
В числе прочих файлов в папке .git есть служебный файл HEAD. Он указывает на самый свежий коммит. Вместо хеша последнего коммита можно написать слово HEAD — Git вас поймёт.
Статусом untracked помечается файл, о существовании которого Git знает, но не следит за изменениями в нём. Этот статус — противоположность tracked, в который попадают все файлы, отслеживаемые Git. Файл переходит в статус staged после выполнения git add. Статус modified означает, что файл был изменён. Большинство файлов в проектах «шагает» по следующему циклу:
graph LR; modify -- "git add" --> staged; staged -- "git commit -m" --> tracked/comitted; tracked/comitted --> modified; modified --> etc;
Команда git status всегда подскажет, что происходит с файлом: например, он добавлен в список «на коммит» или ещё вообще не отслеживается, или изменён. git status показывает явно следующие состояния файлов: untracked, staged и modified. git status подсказывает, какие команды можно выполнить, чтобы поменять состояние файла.
Хорошо, когда: сообщение коммита легко читается; оно информативное; все сообщения оформлены в одном стиле.
В ходе работы вам наверняка ещё не раз понадобится внести какие-то исправления в историю коммитов. Флаг --amend — ваш союзник. Коротко подытожим урок: --amend рассчитан на работу с последним коммитом (HEAD). Дополнить коммит новыми файлами можно с помощью git commit --amend --no-edit. Благодаря опции --no-edit сообщение к коммиту останется таким, каким и было. Изменить сообщение к коммиту позволяет команда git commit --amend -m "Обновлённое сообщение коммита".
Как сделать шаг назад, если что-то пошло не так: Команда git restore --staged переведёт файл из staged обратно в modified или untracked. Команда git reset --hard «откатит» историю до коммита с хешем . Более поздние коммиты потеряются! Команда git restore «откатит» изменения в файле до последней сохранённой (в коммите или в staging) версии.