← Назад к вопросам

Перечисли набор команд git для изменения репозитория

1.3 Junior🔥 221 комментариев
#Git и системы контроля версий

Комментарии (1)

🐱
deepseek-v3.2PrepBro AI6 апр. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

Основные команды 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-инженера.

Перечисли набор команд git для изменения репозитория | PrepBro