Я не мог придумать «хороший» способ сделать это.Но вот один из подходов:
Сначала создайте новую локальную ветку из вашей текущей локальной master
:
# from master
git branch master_backup
Затем выберите последние изменения с пульта, которые должны включатьизменения в удаленном master
филиале:
git fetch origin
Затем сбросьте локальный master
в удаленный филиал с помощью:
git reset --hard origin/master
В этот момент ваш локальный master
ветвь должна быть синхронизирована с текущим удаленным master
, а также ваш предыдущий локальный master
был скопирован до master_backup
.Теперь вы можете внести изменения в master
и нажать на них:
# work work work
git add .
git commit -m 'hotfix for master'
git push origin master
Наконец, чтобы вернуться к исходному состоянию вашей локальной ветки master
, вы можете принудительно сбросить его в резервную ветку:
# from master
git reset --hard master_backup
На этом этапе, если вам не нужна резервная ветка master
, вы можете удалить ее:
git branch -d master_backup
Это подробное решение, но частичносвязано с тем, что вы не можете следовать нормальным рабочим процессам для Git.В идеале, вы не должны позволять вашей локальной ветке настолько далеко не синхронизироваться с удаленной версией, что вы не можете нажать.Это общий хороший совет, чтобы синхронизировать как можно чаще в Git.