В моем git-репозитории я сделал 5 коммитов, как показано ниже в моем журнале git:
commit 4f8b120cdafecc5144d7cdae472c36ec80315fdc
Author: Michael
Date: Fri Feb 4 15:26:38 2011 -0800
commit b688d46f55db1bc304f7f689a065331fc1715079
Author: Michael
Date: Mon Jan 31 10:37:42 2011 -0800
commit b364f9dcec3b0d52666c4f03eb5f6efb7e1e7bda
Author: Michael
Date: Wed Jan 26 13:33:17 2011 -0800
commit 4771e26619b9acba3f059b491c6c6d70115e696c
Author: Michael
Date: Wed Jan 26 11:16:51 2011 -0800
commit 6e559cb951b9bfa14243b925c1972a1bd2586d59
Author: Michael
Date: Fri Jan 21 11:42:27 2011 -0800
Как я могу откатить мои предыдущие 4 коммитов локально в ветке? Другими словами, как я могу создать ветку без моих последних 4 коммитов (предположим, у меня есть SHA этого коммита из git log)?
<commit_hash>
находится в другой ветке, которая впереди?git checkout master
, наряду с одним или двумя крайними случаями, которые могут относиться к определенным ситуациям.Если вы хотите выбросить последние четыре коммита, используйте:
Кроме того, вы можете указать хеш коммита, в который вы хотите сбросить:
источник
git reflog
и вернуть ее обратно - но это отбросит их, да.Просто извлеките коммит, с которого вы хотите начать новую ветку, и создайте новую ветку.
источник
Это означает, что вы не создаете новую ветку и не переходите в отдельное состояние. Новый способ сделать это:
git switch --detach revison
источник