← JavaScript/Git: основы версионного контроля#193 из 383← ПредыдущийСледующий →+20 XP
Полезно по теме:Гайд: как учить JavaScriptПрактика: JS базаПрактика: async и сетьТермин: Closure

Git: основы версионного контроля

Что такое Git

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.git

    Базовые команды

    git status — состояние репозитория

    git status
    # On branch main
    # Changes not staged for commit:
    #   modified:   index.js
    # Untracked files:
    #   new-file.js

    git add — добавление в staging

    # Добавить конкретный файл
    git add index.js
    
    # Добавить все изменённые файлы
    git add .
    
    # Добавить все файлы определённого типа
    git add "*.js"

    git commit — создание коммита

    # Коммит с сообщением
    git commit -m "feat: add user authentication"
    
    # Коммит с описанием в редакторе
    git commit

    git log — история коммитов

    # Полный лог
    git log
    
    # Компактный вывод
    git log --oneline
    
    # Граф веток
    git log --oneline --graph --all

    Три состояния файлов

    Working 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 — игнорирование файлов

    # .gitignore
    node_modules/
    .env
    *.log
    dist/
    .DS_Store

    Хорошие практики коммитов

    Conventional Commits

    feat: добавить авторизацию через 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

    Git: основы версионного контроля

    Что такое Git

    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.git

    Базовые команды

    git status — состояние репозитория

    git status
    # On branch main
    # Changes not staged for commit:
    #   modified:   index.js
    # Untracked files:
    #   new-file.js

    git add — добавление в staging

    # Добавить конкретный файл
    git add index.js
    
    # Добавить все изменённые файлы
    git add .
    
    # Добавить все файлы определённого типа
    git add "*.js"

    git commit — создание коммита

    # Коммит с сообщением
    git commit -m "feat: add user authentication"
    
    # Коммит с описанием в редакторе
    git commit

    git log — история коммитов

    # Полный лог
    git log
    
    # Компактный вывод
    git log --oneline
    
    # Граф веток
    git log --oneline --graph --all

    Три состояния файлов

    Working 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 — игнорирование файлов

    # .gitignore
    node_modules/
    .env
    *.log
    dist/
    .DS_Store

    Хорошие практики коммитов

    Conventional Commits

    feat: добавить авторизацию через 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 если что-то непонятно

    Этот урок содержит теоретическую информацию. Изучи материал, затем отметь урок как пройденный.

    Загружаем AI-помощника...