Предполагая, что ваша ветвь называется master
здесь и удаленно, и что ваш пульт называется origin
, вы могли бы сделать:
git reset --hard <commit-hash>
git push -f origin master
Однако вам следует избегать этого, если кто-то ещеработа с вашим удаленным репозиторием и вытащил ваши изменения.В этом случае было бы лучше вернуть фиксации, которые вам не нужны, а затем нажать как обычно.
Обновление: , которое вы объяснили ниже, чтодругие люди извлекли изменения, которые вы выдвинули, поэтому лучше создать новый коммит, который отменит все эти изменения .Есть хорошее объяснение ваших возможностей сделать это в этом ответе от Якуба Наребски .Какой из них наиболее удобен, зависит от того, сколько коммитов вы хотите вернуть, и какой метод имеет для вас наибольшее значение.
Поскольку из вашего вопроса ясно, что вы уже использовали git reset --hard
для сброса master
ветку, возможно, вам придется начать с использования git reset --hard ORIG_HEAD
, чтобы переместить ветку туда, где она была раньше.(Как и в случае с git reset --hard
, убедитесь, что git status
чист, что вы находитесь на правильной ветке и что вы знаете git reflog
как инструмент для восстановления явно потерянных коммитов.) Вы также должны проверить, чтоORIG_HEAD
указывает на правильный коммит, с git show ORIG_HEAD
.