Вы можете сделать это, если удаленный репозиторий принимает принудительные нажатия:
git push --force origin clean_start:master
Обратите внимание, что если у кого-то еще есть клонированный репозиторий, толчок от них может потенциально отменить это .Если вы хотите объединить вашу локальную главную ветку и удаленную главную ветку, но сохранить дерево файлов в своей ветви (исключая дерево файлов источника), вы можете сделать это следующим образом:
git merge -s ours --no-commit origin/master
git commit # Separate step so that you can use your own commit message.
git checkout master
git merge clean_start # Fast-forward
git push origin master
Thisсоздаст коммит слияния с обеими ветвями (ваш master и master источника) в качестве его родителя, но дерево будет идентично вашей текущей ветке tip.Другими словами, это создаст символическое слияние, когда фактическое слияние кода не произошло.
Если вы не возражаете, что другие люди, работающие в репо, будут прерваны, вы можете использовать первый подход.Но если вы работаете с другими людьми, у которых уже есть эти коммиты, второй подход будет более надежным и сохранит историю.