Git — это система контроля версий, которую я использую для отслеживания изменений в коде:
# Основные команды Git
git add .
git commit -m "Добавил новую функцию"
git push origin main
git pull origin main
git checkout -b feature/new-featureGit — это распределённая система контроля версий, которая позволяет отслеживать изменения в коде, работать в команде и управлять версиями проекта. 🚀
Для начала работы с Git необходимо либо создать новый репозиторий, либо клонировать существующий:
# Создание нового репозитория
git init
# Клонирование существующего репозитория
git clone https://github.com/username/repository.git
# Настройка имени и email
git config --global user.name "Ваше Имя"
git config --global user.email "ваш.email@example.com"Ежедневный рабочий процесс с Git включает следующие команды:
# Проверка статуса репозитория
git status
# Добавление файлов в индекс
git add file.txt
git add . # Добавить все изменения
# Создание коммита
git commit -m "Краткое описание изменений"
# Отправка изменений в удалённый репозиторий
git push origin main
# Получение изменений из удалённого репозитория
git pull origin mainВетки позволяют разрабатывать функциональность изолированно:
# Просмотр всех веток
git branch
# Создание новой ветки
git branch feature/new-feature
# Создание и переключение на новую ветку
git checkout -b feature/new-feature
# Переключение между ветками
git checkout main
# Удаление ветки
git branch -d feature/new-featureДля объединения изменений из разных веток используются merge и rebase:
# Слияние ветки feature в текущую ветку
git merge feature/new-feature
# Перебазирование текущей ветки на feature
git rebase feature/new-feature
# Разрешение конфликтов
# После ручного разрешения конфликтов:
git add .
git merge --continue # или git rebase --continueДля анализа истории изменений:
# Просмотр истории коммитов
git log
# Компактный вид истории
git log --oneline
# Графическое представление истории
git log --graph --oneline --all
# Просмотр изменений в конкретном коммите
git show <commit-hash>Stash позволяет временно сохранить незавершённые изменения:
# Сохранение текущих изменений
git stash
# Применение сохранённых изменений
git stash apply
# Применение и удаление из stash
git stash pop
# Просмотр списка stash
git stash listДля исправления ошибок:
# Отмена изменений в рабочей директории
git checkout -- file.txt
# Отмена индексации файла
git reset HEAD file.txt
# Изменение последнего коммита
git commit --amend
# Отмена последнего коммита (сохраняя изменения)
git reset --soft HEAD~1
# Полная отмена последнего коммита
git reset --hard HEAD~1Для синхронизации с удалёнными репозиториями:
# Просмотр удалённых репозиториев
git remote -v
# Добавление удалённого репозитория
git remote add origin https://github.com/username/repository.git
# Получение изменений без слияния
git fetch origin
# Получение и слияние изменений
git pull origin main# Создание ветки для новой функциональности
git checkout -b feature/user-authentication
# Разработка и коммиты
git add .
git commit -m "Добавил форму входа"
git add .
git commit -m "Добавил валидацию пароля"
# Синхронизация с основной веткой
git checkout main
git pull origin main
git checkout feature/user-authentication
git rebase main
# Отправка ветки в удалённый репозиторий
git push origin feature/user-authentication
# После code review и одобрения
git checkout main
git merge feature/user-authentication
git push origin main# Создание hotfix-ветки от main
git checkout main
git checkout -b hotfix/critical-bug
# Исправление ошибки
git add .
git commit -m "Исправил критическую ошибку"
# Отправка исправления
git push origin hotfix/critical-bug
# Применение исправления в main
git checkout main
git merge hotfix/critical-bug
git push origin main❌ Неправильно:
# Коммит всех изменений без проверки
git add .
git commit -m "Changes"✅ Правильно:
# Проверка изменений перед коммитом
git status
git diff
git add file1.js file2.js
git commit -m "Добавил валидацию формы и обработку ошибок"Git — мощный инструмент для управления версиями кода:
Используйте Git для эффективной работы в команде и управления историей проекта! 🚀