Skip to main content

Полное слияние ветки test в main с удалением test

📌 Задача

У вас есть две ветки: main и test. Вам нужно:

  • Полностью заменить содержимое main на текущее состояние test.
  • Удалить ветку test после слияния.

✅ Пошаговое решение

1️⃣ Переключаемся в main

git checkout main

2️⃣ Обновляем main перед слиянием (если работаем с удалённым репозиторием)

git pull origin main

3️⃣ Полностью заменяем main на test

git reset --hard test

4️⃣ Принудительно отправляем изменения в удалённый репозиторий

git push --force origin main

🚨 Внимание! Использование --force полностью заменит удалённую ветку main на состояние test. Будьте уверены, что ничего важного не потеряете!

5️⃣ Удаляем ветку test локально

git branch -D test

6️⃣ Удаляем ветку test на удалённом сервере

git push origin --delete test

🔥 Объяснение команд

Команда Описание
git checkout main Переключаемся в ветку main.
git pull origin main Загружаем актуальные изменения main.
git reset --hard test Полностью заменяем содержимое main на test.
git push --force origin main Принудительно обновляем main на удалённом сервере.
git branch -D test Удаляем локальную ветку test.
git push origin --delete test Удаляем ветку test в удалённом репозитории.

🚀 Итог

  • Ветка main станет идентичной test.
  • Ветка test будет удалена локально и на сервере.

⚠ Важно!

  • Если main используется другими разработчиками, предупредите их перед выполнением git push --force origin main, так как это перезапишет всю историю.
  • Более безопасный способ, если main нельзя перезаписывать принудительно:
    git checkout main
    git merge --strategy=ours test
    git push origin main