Git - консольное приложение, система контроля версий. Создана Линусом Торвальдсоном для разработки ядра Linux.
Основные команды, которые нужно знать при работе с git:
git init - инициализировать репозиторий
git status - узнать статус репозитория
git add - добавить файлы в коммит (запомнить)
git commit -m "Соообщение" - закоммитить файлы в репозиторий с сообщеним (сохранить)
git log - просмотреть историю коммитов
Github - веб-сервис для хостинга IT-проектов (удаленных репозиториев) и работе в команде.
На GitHub создаются удаленные репозитории, также есть коммиты, ветки, пул реквесты и т.д.
Для безопастной работы генерируется ключ SSH, также имеется возможность синхронизировать удаленный репозиторий с репозиторием на компьютере.
Файл READM.ME содержит описание проекта, кто его сделал, при помощи чего и в целом общую информацию.
У каждого коммита также есть хеш, в нем хранится вся информация о конкретном коммите - кто сделал, когда, что написал.
Чтобы исследовать коммиты можно воспользоваться командой git log или git log --oneline для сокращенного варианта.
HEAD ом называется последний коммит, к нему можно обращаться прямо так, вместо того, чтобы прописывать хеш.
На самом деле HEAD это файл, где лежит ссылка, которая ведёт на сам хеш. Такая вот матрешка
У гит файлов есть пара разных статусов, например:
untracked - гит знает про файл, но не учитывает его
staged - файл попадает в эту зону после команды git add
unstaged - файл был в кеше, но потом был изменен и пока еще не добавлен обратно
tracked - широкое понятие, файлы отслеживаются
committed - файл закомичен
modified - файл изменен на одном из этапов
graph LR;
untracked -- "git add" --> staged;
staged -- "git commit" --> tracked/comitted;