webroad.online
  1. 1Веб
  2. 2HTML
  3. 3CSS
  4. 4JavaScript
  5. 5TypeScript
  6. 6Git
  7. 7Инструменты
  8. 8React
  9. 9Стейт-менеджмент
  10. 10Next.js
  11. 11Формы
  12. 12Данные и бэкенд
  13. 13SEO
  14. 14Tailwind CSS
  15. 15Анимации
  16. 16Тестирование
  17. 17Архитектура
Git · Урок 1 из 3

Git: основы

Репозиторий, коммит, staging area, команды на каждый день и .gitignore.

Обновлено

Что такое Git

Git — система контроля версий: она хранит полную историю проекта — каждое изменение, кто его сделал, когда и зачем. Можно в любой момент вернуться к прошлой версии, работать параллельно с другими и пробовать идеи, не ломая то, что работает.

GitHub (или GitLab) — сервис, который хранит Git-репозитории онлайн и добавляет совместную работу: pull request-ы, ревью, CI. Git ≠ GitHub.

Базовые понятия

Термин Что это
репозиторий (repo) проект + вся его история (скрытая папка .git)
коммит «снимок» проекта в определённый момент, с сообщением
ветка (branch) независимая линия разработки (следующий урок)
remote копия репозитория на сервере (origin)
HEAD где вы сейчас находитесь в истории

3 зоны

У Git есть три «места», через которые проходит изменение:

working directoryваши файлыgit add→staging areaчто попадёт в коммитgit commit→repositoryистория

Staging area (индекс) позволяет выбрать ровно то, что попадёт в коммит: можно изменить 5 файлов и сделать два отдельных логичных коммита.

Команды на каждый день

Команда Что делает
git status что изменилось и что в staging — запускайте часто
git diff изменения, которых ещё нет в staging
git add <файл> / git add -p добавить в staging (весь файл / по частям)
git commit -m "сообщение" создать коммит
git log --oneline компактная история
git pull забрать и встроить изменения с remote
git push отправить свои коммиты на remote
git restore <файл> отменить незакоммиченные изменения в файле
git stash / git stash pop временно отложить изменения

Хороший коммит

  • Маленький и логичный — одно изменение (баг, маленькая фича). Легко читать на ревью, легко отменить.
  • Сообщение объясняет зачем, а не только что: «fix: сохранять корзину после входа» > «update».
  • Код работает после каждого коммита (сборка не сломана).

.gitignore

Файл .gitignore говорит, что никогда не попадает в Git:

node_modules/        # зависимости — переустанавливаются из package-lock
.next/               # сборка
.env*                # СЕКРЕТЫ — никогда в Git
*.log
.DS_Store

Если вы случайно закоммитили секрет и сделали push, считайте его скомпрометированным: смените его (ротируйте ключ), а не просто удалите из кода.

Отмена ошибок — виды и когда

Ситуация Команда
незакоммиченные изменения в файле git restore файл
случайно добавили что-то в staging git restore --staged файл
у последнего коммита неверное сообщение / забыли файл (push ещё не делали) git commit --amend
отменить уже опубликованный коммит git revert <hash> — создаёт новый коммит, который делает обратное
«всё сломал локально» git reflog — история всех положений HEAD, откуда можно восстановить почти всё

Золотое правило: не переписывайте опубликованную историю (amend, rebase, reset на коммитах, уже отправленных в общую ветку).

Коротко

  • Git = история версий; GitHub = хостинг + совместная работа.
  • working directory → add → staging → commit → история.
  • Маленькие логичные коммиты с понятными сообщениями; секреты — в .gitignore.

Официальные источники

Упражнения

Была ли страница полезной?

Один клик — без регистрации.