Перечисли набор команд git для изменения репозитория
Комментарии (1)
Ответ сгенерирован нейросетью и может содержать ошибки
Основные команды Git для изменения репозитория
Git предоставляет широкий набор команд для управления изменениями в репозитории. Я разделю их на ключевые категории для структурированного понимания.
1. Команды для создания и внесения изменений
git add — добавляет изменения в индекс (staging area) для подготовки к коммиту.
# Добавить конкретный файл
git add index.html
# Добавить все изменения в текущей директории
git add .
# Добавить все изменения в репозитории
git add -A
git commit — фиксирует изменения из индекса в локальный репозиторий.
# Создать коммит с сообщением
git commit -m "Add new feature"
# Добавить все изменения и сразу создать коммит (только для уже отслеживаемых файлов)
git commit -am "Quick update"
# Открыть редактор для подробного сообщения
git commit
2. Команды для управления ветками
git branch — управление ветками (создание, просмотр, удаление).
# Создать новую ветку
git branch feature-new
# Показать все ветки
git branch
# Показать ветки с последними коммитами
git branch -v
# Удалить ветку (только если она полностью слита)
git branch -d feature-old
# Удалить ветку принудительно
git branch -D feature-force-delete
git checkout — переключение между ветками и создание новых веток.
# Переключиться на существующую ветку
git checkout main
# Создать новую ветку и сразу переключиться на нее
git checkout -b feature-test
# Откатить изменения в конкретном файле до состояния в индексе
git checkout -- config.yaml
git switch (новый альтернативный команде checkout) — более безопасное переключение веток.
# Переключиться на ветку
git switch main
# Создать и переключиться на новую ветку
git switch -c feature-alt
3. Команды для объединения изменений
git merge — сливает изменения из одной ветки в текущую.
# Слить ветку feature в текущую ветку
git merge feature
# Слить с созданием коммита о слиянии
git merge --no-ff feature-log
git rebase — перебазирует текущую ветку на другую, "переписывая" историю.
# Перебазировать текущую ветку на main
git rebase main
# Интерактивный rebase для редактирования коммитов
git rebase -i HEAD~5
4. Команды для отмены изменений
git reset — отменяет изменения разной степени.
# Отменить коммит, но сохранить изменения в рабочей директории (soft reset)
git reset --soft HEAD~1
# Отменить коммит и изменения в индексе, сохранить в рабочей директории (mixed)
git reset HEAD~1
# Полностью отменить коммит и все изменения (hard reset)
git reset --hard HEAD~1
git revert — создает новый коммит, отменяющий изменения указанного коммита.
# Отменить конкретный коммит
git revert a1b2c3d
# Отменить последний коммит
git revert HEAD
git restore (новый альтернатив) — восстановление файлов из индекса или репозитория.
# Восстановить файл из индекса (отменить git add)
git restore --staged file.txt
# Восстановить файл из репозитория (отменить изменения)
git restore file.txt
5. Команды для синхронизации с удаленным репозиторием
git push — отправляет изменения в удаленный репозиторий.
# Отправить текущую ветку в origin
git push origin main
# Отправить с указанием ветки
git push origin feature:feature-remote
# Отправить все локальные ветки
git push --all origin
git fetch — получает изменения из удаленного репозитория без сливания.
# Загрузить все изменения из origin
git fetch origin
# Загрузить конкретную ветку
git fetch origin feature
git pull — получает изменения и автоматически сливает с текущей веткой.
# Загрузить и слить изменения из origin в текущую ветку
git pull origin main
# Загрузить и перебазировать
git pull --rebase origin main
6. Практический пример: типичный рабочий цикл
Рассмотрим последовательность команд для реализации нового функционала:
# 1. Переключиться на основную ветку и получить свежие изменения
git checkout main
git pull origin main
# 2. Создать и переключиться на ветку для новой функции
git switch -c feature-user-auth
# 3. Создать файлы, внести изменения
touch auth.py
echo "def login(): pass" > auth.py
# 4. Добавить изменения в индекс
git add auth.py
# 5. Создать коммит
git commit -m "Add authentication module"
# 6. Продолжать работу, добавляя новые коммиты
git add .
git commit -m "Implement JWT tokens"
# 7. Перебазировать на обновленный main (если нужно)
git fetch origin
git rebase origin/main
# 8. Отправить ветку в удаленный репозиторий
git push origin feature-user-auth
# 9. После мержа удалить локальную ветку
git switch main
git pull origin main
git branch -d feature-user-auth
Ключевые рекомендации:
- git status — постоянно используйте для проверки состояния репозитория
- git log — просматривайте историю коммитов для понимания контекста
- git diff — анализируйте различия между состояниями файлов
- Для сложных операций всегда проверяйте влияние на историю с помощью git log --graph --oneline
Этот набор команд покрывает основные сценарии работы с изменениями в Git. Для продвинутых операций (патчи, субмодули, bisect) существует дополнительный набор инструментов, но указанные команды составляют основу ежедневного workflow DevOps-инженера.