Ответы:
git reset --hard HEAD~1
git push -f <remote> <branch>
(Пример нажать: git push -f origin bugfix/bug123
)
Это отменит последний коммит и отправит обновленную историю на удаленный компьютер. Вы должны передать, -f
потому что вы заменяете историю восходящего потока в удаленном.
git log --decorate --oneline
чтобы узнать, куда указывает ваша ГОЛОВА.
git reset HEAD~1
если вы не хотите, чтобы ваши изменения пропали (непроверенные изменения). Изменить, зафиксировать и нажать еще разgit push -f [origin] [branch]
Как правило, сделать «обратный» коммит, используя:
git revert 364705c
затем отправьте его на пульт как обычно:
git push
Это не удалит коммит: он делает дополнительный коммит, который отменяет то, что сделал первый коммит. Все остальное, не совсем безопасное, особенно когда изменения уже распространены.
git reset
принимается, только если вы еще не отправили изменения на сервер.
Прежде всего, Relax.
«Ничто не находится под нашим контролем. Наш контроль - просто иллюзия», «Человеку свойственно ошибаться»
Я понял, что вы непреднамеренно добавили свой код в remote-master
. ЭТО будет в порядке.
1. Сначала получите SHA-1
значение коммита, который вы пытаетесь вернуть, например, коммит в ветку master. запустите это:
git log
вы увидите кучу строк типа f650a9e398ad9ca606b25513bd4af9fe ... вместе с каждым коммитом. скопируйте этот номер из коммита, который вы хотите вернуть обратно .
2. Теперь введите следующую команду:
git reset --hard your_that_copied_string_but_without_quote_mark
Вы должны увидеть сообщение типа «ГОЛОВА сейчас». вы на свободном Что он только что сделал, это отразил это изменение на местном уровне.
3. Теперь введите следующую команду:
git push -f
вы должны увидеть как
"предупреждение: push.default не установлено; его неявное значение изменилось в ..... ... Всего 0 (дельта 0), повторно использовалось 0 (дельта 0) ... ... your_branch_name -> master (принудительное обновление) «.
Теперь с вами все ясно. Снова проверьте мастер с помощью «git log», ваш fixed_destination_commit должен быть в верхней части списка.
Добро пожаловать (заранее;))
ОБНОВИТЬ:
Теперь, изменения, которые вы сделали до того, как все это началось, теперь ушли. Если вы хотите вернуть эти тяжелые работы снова, это возможно. Благодаря git reflog и командам git cherry-pick .
Для этого я бы посоветовал следить за этим блогом или этим постом .
Вы можете сделать интерактивный ребаз:
git rebase -i <commit>
Это вызовет ваш редактор по умолчанию. Просто удалите строку, содержащую коммит, который вы хотите удалить, чтобы удалить этот коммит.
Вам, конечно, понадобится доступ к удаленному репозиторию, чтобы применить это изменение там же.
Смотрите этот вопрос: Git: удаление выбранных коммитов из репозитория
Попробуйте использовать
git reset --hard <commit id>
Пожалуйста, обратите внимание: здесь в качестве идентификатора фиксации будет указан идентификатор фиксации, к которому вы хотите перейти, но не идентификатор, который вы хотите сбросить это была единственная точка, где я тоже застрял.
затем нажмите
git push -f <remote> <branch>
git reset --hard <the-sha-you-want-to-return-to>
.