Короткий ответ
Git — это распределённая система контроля версий для отслеживания изменений исходного кода. В отличие от централизованных систем вроде SVN или CVS, каждый разработчик имеет полную копию репозитория со всей историей. Commit — это запись изменений с метаданными: автор, дата и ссылка на родительский коммит.
Как это работает подробнее
Каждый файл в репозитории в любой момент находится в одном из четырёх состояний, между которыми его перемещают команды Git.
- Untracked. Новый файл, ещё не добавленный в Git.
- Modified. Файл изменён после последнего коммита, но ещё не подготовлен.
- Staged. Файл добавлен командой
git addи готов к коммиту. - Committed. Изменения сохранены в репозиторий командой
git commit. - Целостность. Каждый коммит идентифицируется уникальным SHA-1-хэшем, а
git pushиgit pullсинхронизируют локальный репозиторий с удалённым.
Пример кода
Базовые команды Git
git status # показать состояние и незакоммиченные изменения
git add main.py # добавить файл в индекс (staged)
git commit -m 'Исправлен баг' # сохранить изменения с сообщением
git push # отправить коммиты в удалённый репозиторий
git pull # забрать изменения: это fetch и merge
git fetch # только скачать изменения без слиянияЧто использовать на практике
- Частые коммиты. Делай небольшие коммиты с осмысленными сообщениями, чтобы историю было легко читать.
- Проверка состояния. Регулярно смотри
git status, чтобы понимать, какие файлы изменены.