← головнаПрограмування

Як швидко скинути QA/Staging branch до стану main

Іноді QA (або staging) branch настільки обростає експериментами, що простіше не намагатися розрулити всі конфлікти, а просто зробити його точною копією main (master).Для цього достатньо двох команд:git reset --hard or...

Іноді QA (або staging) branch настільки обростає експериментами, що простіше не намагатися розрулити всі конфлікти, а просто зробити його точною копією main (master).
Для цього достатньо двох команд:
git reset --hard origin/main
git push --force-with-lease
Приклад:
git reset --hard origin/main
HEAD is now at 46911f2 Fixed main page search

git push --force-with-lease
Total 0 (delta 0), reused 0 (delta 0), pack-reused 0 (from 0)
To https://github.com/username/sandbox.git
 + 53cda29...46911f2 staging -> staging (forced update)
Що відбувається:
  • git reset --hard origin/main повністю переводить поточну локальну гілку на той самий коміт, що й origin/main. Усі локальні коміти та незбережені зміни буде втрачено.
  • git push --force-with-lease оновлює віддалену QA/Staging-гілку, роблячи її точною копією main.
Чому саме --force-with-lease, а не --force?
Тому що ця команда трохи безпечніша. Git перевіряє, що ніхто не встиг запушити нові коміти після вашого останнього fetch. Якщо віддалена гілка змінилася, push буде відхилено замість того, щоб мовчки затерти чужу роботу.
⚠️ Робіть це лише тоді, коли дійсно хочете повністю перезаписати історію QA/Staging-гілки. Після такого push усі коміти, яких немає в main, перестануть бути частиною цієї гілки.
GUI застосунки типу Github Desktop можуть не відобразити ці зміни. Можливо треба буде перезавантажити застосунок або "пострибати" між гілками, щоб зміни підтягнулися.

🔥 Більше дописів

Всі публікації
Elasticsearch, OpenSearch та альтернативи
Програмування5 лип. '26, 10:36

Elasticsearch, OpenSearch та альтернативи

Уявіть, що у вас є мільйон документів. Ви хочете знайти всі, де є слово «кава», але тільки ті, де...