Основы работы с Git — чек-лист
После теории отработайте команды на примерах — лабораторная "Git — шпаргалка сценариев" (init, add, commit, push, ветки, откат).
Чек-лист самопроверки
- Что такое система контроля версий?
- В чём разница между централизованной и распределённой системой контроля версий?
- Кто создал Git и почему?
- Что такое репозиторий в контексте Git?
- Какие три уровня конфигурации поддерживает Git?
- Как установить имя и email пользователя глобально в Git?
- Что означает флаг
--globalв командеgit config? - Где хранится глобальный конфигурационный файл на Windows?
- Где хранится глобальный конфигурационный файл на Linux/macOS?
- Как проверить установленную версию Git?
- Что такое локальный репозиторий?
- Что такое удалённый репозиторий?
- Как инициализировать новый репозиторий в текущей папке?
- Как клонировать существующий репозиторий с сервера?
- Что такое
.gitи зачем он нужен? - Что такое
.gitignoreи как его использовать? (подробно: Файл .gitignore) - Какие состояния могут иметь файлы в Git?
- Что означает состояние "untracked"?
- Что означает состояние "modified"?
- Что означает состояние "staged"?
- Что означает состояние "committed"?
- Как добавить файл в индекс (stage)?
- Как зафиксировать изменения в виде коммита?
- Как правильно писать сообщения коммитов?
- Что такое
HEADв Git? - Что такое "detached HEAD" и почему это опасно?
- Как переключиться на другую ветку?
- Как создать новую ветку?
- Как посмотреть список всех веток?
- Как отправить локальные коммиты в удалённый репозиторий?
- Как получить последние изменения из удалённого репозитория?
- В чём разница между
git pullиgit fetch? - Что такое
origin? - Как привязать локальный репозиторий к удалённому?
- Что происходит при выполнении
git push -u origin main? - Что такое слияние (merge) веток?
- Когда возникает конфликт слияния?
- Как выглядят маркеры конфликта в файле?
- Как разрешить конфликт слияния вручную?
- Можно ли отменить начатое слияние? Если да, то как?
- Что такое pull request?
- Зачем нужны code review и pull request в командной разработке?
- Что такое CI/CD и как он связан с Git?
- Как отменить последний локальный коммит без потери изменений?
- Как отменить уже отправленный коммит безопасно?
- Что делает команда
git revert? - Что делает команда
git reset --soft? - Что делает команда
git reset --hard? - Как восстановить удалённый файл из предыдущего коммита?
- Как найти потерянные коммиты после сброса ветки?
- Что делает
git stashи когда его использовать? - В чём разница между
git mergeиgit rebaseпри подтягиванииmainв feature-ветку? - Что означает отклонённый
push(non-fast-forward)? - Зачем
git push --force-with-leaseвместо--force? - Что делает
git add -p? - Чем
git restoreотличается отgit reset? - Как отменить начатый, но не завершённый
mergeилиrebase? - Что такое форк и remote
upstream? - Как безопасно откатить merge-коммит, уже попавший на сервер?
- Что делать, если в Git попал файл с паролем или ключом?
- Что такое
git reflogи почему он не передаётся приclone? - Когда уместен
git commit --amend, а когда — только новый коммит илиrevert? - Как восстановить один файл из старого коммита?
- Что такое зоны риска A / B / C при исправлении ошибок Git?
- Где в энциклопедии найти пошаговые сценарии "что делать, если…"?
- Как откатить ошибочный
git pullиз чужой ветки? - Что делает
git bisectи когда его запускать? - Чем
git cherry-pickотличается отmerge?