Как мне "отменить отмену" в git? - PullRequest
2 голосов
/ 17 ноября 2011

Чтобы сбросить мой последний коммит, я сделал это:

git reset --soft HEAD^

Но я делал это слишком много раз.Теперь я хочу вернуться вперед на пару.Возможно ли это?

Кроме того, у меня был код разработчика и слияния в производственном приложении, которое полностью скрывало все.Затем, чтобы это исправить, он вручную переписал некоторые файлы в исходном приложении.Есть плохие коммиты.Приложения не работают.

Есть ли какой-нибудь способ сделать полный сброс на определенный момент времени в Git?Я недостаточно знаком с этим.

Ответы [ 2 ]

5 голосов
/ 17 ноября 2011

Используйте git reflog, чтобы увидеть, где вы были, и вернуться к этому.(или используйте обозначение типа HEAD@{1} при сбросе)

Для другой проблемы из git log получите хэш коммита, в который вы хотите сбросить, и выполните git reset --hard <sha1>.Или вы можете даже сделать git reset --hard HEAD@{1 day ago} и т. Д., Если хотите сбросить коммит в какое-то время в прошлом.Поскольку вы переписываете историю, вам придется сделать принудительный толчок - git push -f

Кроме того, почему разработчики подталкивают к производству?Есть ворота - CI, тестирование и т. Д.

2 голосов
/ 17 ноября 2011

Есть ли какой-нибудь способ сделать полный сброс в определенный момент времени в Git?

Да. git reset --hard <SHA1-id-of-the-commit-you-want-to-hard-reset-to>

См. здесь (Отмена в Git - Сброс, извлечение и возврат) , чтобы узнать больше о git reset. Чтобы узнать основы восстановления данных, см. Здесь: Раздел восстановления данных в главе 9 книги ProGit .

Еще несколько советов по как отменить вещи в git .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...