Git — распределённая система контроля версий. Она позволяет:
# Проверка установки
git --version
# Настройка имени и email (обязательно!)
git config --global user.name "Ваше Имя"
git config --global user.email "your@email.com"
# Проверка настроек
git config --list# Инициализация в существующей папке
cd my-project
git init
# Или клонирование существующего репозитория
git clone https://github.com/user/repo.gitgit status
# On branch main
# Changes not staged for commit:
# modified: index.js
# Untracked files:
# new-file.js# Добавить конкретный файл
git add index.js
# Добавить все изменённые файлы
git add .
# Добавить все файлы определённого типа
git add "*.js"# Коммит с сообщением
git commit -m "feat: add user authentication"
# Коммит с описанием в редакторе
git commit# Полный лог
git log
# Компактный вывод
git log --oneline
# Граф веток
git log --oneline --graph --allWorking Directory → Staging Area → Repository
(изменён) (add) (commit)1. Working Directory — рабочие файлы, которые вы редактируете
2. Staging Area (Index) — подготовленные к коммиту изменения
3. Repository (.git) — история всех коммитов
# Отменить изменения в файле (до add)
git checkout -- index.js
# или (новый синтаксис)
git restore index.js
# Убрать файл из staging (после add, до commit)
git reset HEAD index.js
# или
git restore --staged index.js
# Отменить последний коммит (сохранив изменения)
git reset --soft HEAD~1
# Отменить последний коммит (удалив изменения)
git reset --hard HEAD~1# .gitignore
node_modules/
.env
*.log
dist/
.DS_Storefeat: добавить авторизацию через OAuth
fix: исправить утечку памяти в useEffect
docs: обновить README
style: форматирование кода
refactor: переписать модуль авторизации
test: добавить тесты для API
chore: обновить зависимости1. Атомарность — один коммит = одно изменение
2. Понятное сообщение — что и зачем изменено
3. Настоящее время — "add feature" не "added feature"
4. Без мусора — не коммитить node_modules, .env
Базовый цикл работы в Git: init → add → commit → log
# 1) Создаём проект и инициализируем Git
mkdir demo-git && cd demo-git
git init
# 2) Создаём файл и проверяем статус
echo "console.log('Hello Git')" > index.js
git status
# 3) Добавляем в staging и делаем коммит
git add index.js
git commit -m "feat: add initial entry point"
# 4) Смотрим историю
git log --oneline --graph --allОтмена изменений до и после staging
# Изменили файл
echo "debug=true" >> config.txt
# До git add: отмена в рабочей директории
git restore config.txt
# После git add: убрать из staging
git add config.txt
git restore --staged config.txt
# Проверка состояния
git statusGit — распределённая система контроля версий. Она позволяет:
# Проверка установки
git --version
# Настройка имени и email (обязательно!)
git config --global user.name "Ваше Имя"
git config --global user.email "your@email.com"
# Проверка настроек
git config --list# Инициализация в существующей папке
cd my-project
git init
# Или клонирование существующего репозитория
git clone https://github.com/user/repo.gitgit status
# On branch main
# Changes not staged for commit:
# modified: index.js
# Untracked files:
# new-file.js# Добавить конкретный файл
git add index.js
# Добавить все изменённые файлы
git add .
# Добавить все файлы определённого типа
git add "*.js"# Коммит с сообщением
git commit -m "feat: add user authentication"
# Коммит с описанием в редакторе
git commit# Полный лог
git log
# Компактный вывод
git log --oneline
# Граф веток
git log --oneline --graph --allWorking Directory → Staging Area → Repository
(изменён) (add) (commit)1. Working Directory — рабочие файлы, которые вы редактируете
2. Staging Area (Index) — подготовленные к коммиту изменения
3. Repository (.git) — история всех коммитов
# Отменить изменения в файле (до add)
git checkout -- index.js
# или (новый синтаксис)
git restore index.js
# Убрать файл из staging (после add, до commit)
git reset HEAD index.js
# или
git restore --staged index.js
# Отменить последний коммит (сохранив изменения)
git reset --soft HEAD~1
# Отменить последний коммит (удалив изменения)
git reset --hard HEAD~1# .gitignore
node_modules/
.env
*.log
dist/
.DS_Storefeat: добавить авторизацию через OAuth
fix: исправить утечку памяти в useEffect
docs: обновить README
style: форматирование кода
refactor: переписать модуль авторизации
test: добавить тесты для API
chore: обновить зависимости1. Атомарность — один коммит = одно изменение
2. Понятное сообщение — что и зачем изменено
3. Настоящее время — "add feature" не "added feature"
4. Без мусора — не коммитить node_modules, .env
Базовый цикл работы в Git: init → add → commit → log
# 1) Создаём проект и инициализируем Git
mkdir demo-git && cd demo-git
git init
# 2) Создаём файл и проверяем статус
echo "console.log('Hello Git')" > index.js
git status
# 3) Добавляем в staging и делаем коммит
git add index.js
git commit -m "feat: add initial entry point"
# 4) Смотрим историю
git log --oneline --graph --allОтмена изменений до и после staging
# Изменили файл
echo "debug=true" >> config.txt
# До git add: отмена в рабочей директории
git restore config.txt
# После git add: убрать из staging
git add config.txt
git restore --staged config.txt
# Проверка состояния
git statusИзучи материал выше и задай вопросы AI если что-то непонятно
Этот урок содержит теоретическую информацию. Изучи материал, затем отметь урок как пройденный.