Я выполнил, git commit
а затем git push
. Как я могу отменить это изменение как в локальных, так и в удаленных репозиториях?
$ git log
commit 364705c23011b0fc6a7ca2d80c86cef4a7c4db7ac8
Author: Michael Silver <Michael Silver@gmail.com>
Date: Tue Jun 11 12:24:23 2011 -0700
git
git-push
git-commit
Майкл
источник
источник
git reset --hard <the-sha-you-want-to-return-to>
.git log --decorate --oneline
чтобы узнать, куда указывает ваша ГОЛОВА.git reset HEAD~1
если вы не хотите, чтобы ваши изменения пропали (непроверенные изменения). Изменить, зафиксировать и нажать еще разgit push -f [origin] [branch]
Как правило, сделать «обратный» коммит, используя:
затем отправьте его на пульт как обычно:
Это не удалит коммит: он делает дополнительный коммит, который отменяет то, что сделал первый коммит. Все остальное, не совсем безопасное, особенно когда изменения уже распространены.
источник
git reset
принимается, только если вы еще не отправили изменения на сервер.Прежде всего, Relax.
«Ничто не находится под нашим контролем. Наш контроль - просто иллюзия», «Человеку свойственно ошибаться»
Я понял, что вы непреднамеренно добавили свой код в
remote-master
. ЭТО будет в порядке.1. Сначала получите
SHA-1
значение коммита, который вы пытаетесь вернуть, например, коммит в ветку master. запустите это:вы увидите кучу строк типа f650a9e398ad9ca606b25513bd4af9fe ... вместе с каждым коммитом. скопируйте этот номер из коммита, который вы хотите вернуть обратно .
2. Теперь введите следующую команду:
Вы должны увидеть сообщение типа «ГОЛОВА сейчас». вы на свободном Что он только что сделал, это отразил это изменение на местном уровне.
3. Теперь введите следующую команду:
вы должны увидеть как
Теперь с вами все ясно. Снова проверьте мастер с помощью «git log», ваш fixed_destination_commit должен быть в верхней части списка.
Добро пожаловать (заранее;))
ОБНОВИТЬ:
Теперь, изменения, которые вы сделали до того, как все это началось, теперь ушли. Если вы хотите вернуть эти тяжелые работы снова, это возможно. Благодаря git reflog и командам git cherry-pick .
Для этого я бы посоветовал следить за этим блогом или этим постом .
источник
git reset HEAD~1
если вы не хотите, чтобы ваши изменения пропали (непроверенные изменения). Изменить, зафиксировать и снова нажатьgit push -f [origin] [branch]
источник
Вы можете сделать интерактивный ребаз:
Это вызовет ваш редактор по умолчанию. Просто удалите строку, содержащую коммит, который вы хотите удалить, чтобы удалить этот коммит.
Вам, конечно, понадобится доступ к удаленному репозиторию, чтобы применить это изменение там же.
Смотрите этот вопрос: Git: удаление выбранных коммитов из репозитория
источник
Попробуйте использовать
Пожалуйста, обратите внимание: здесь в качестве идентификатора фиксации будет указан идентификатор фиксации, к которому вы хотите перейти, но не идентификатор, который вы хотите сбросить это была единственная точка, где я тоже застрял.
затем нажмите
источник
В качестве альтернативы:
Принудительная ветка master удаленного репозитория origin родительскому элементу последнего коммита
источник