Я хочу вернуть свою основную ветку в состояние 8 коммитов назад - PullRequest
2 голосов
/ 21 марта 2011

Я только что понял, что ввел утечку памяти где-то за последние 8 коммитов. Самое простое решение - вернуться к 8 коммитам назад, а затем аккуратно добавить изменения назад. Какой самый простой способ сделать это?

Спасибо!

Ответы [ 2 ]

6 голосов
/ 21 марта 2011

Взгляните на git bisect.Похоже, это именно то, что вы ищете.

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

Вот учебник по его использованию: http://www.kernel.org/pub/software/scm/git/docs/user-manual.html#using-bisect

Но, если вы не хотите делать это таким образом, создайте временную ветку, где вы находитесь прямо сейчас, и либо сделайте кучуиз git reset HEAD^, чтобы подняться на один коммит за раз, или выполнить git reset HEAD~8, а затем git cherry-pick <sha1> для каждого последующего коммита между вами и вашим временным коммитом.

1 голос
/ 21 марта 2011

Клонируйте своего мастера в другую ветку, затем на мастера git reset --hard для коммита.Затем используйте git cherry pick, чтобы представить каждый возвращенный коммит из ветви резервных копий в главную ветвь и проверить.Если все в порядке, переходите к следующему коммиту и т. Д.

Пожалуйста, ознакомьтесь с указанными мною командами, прежде чем продолжить, если вы не знакомы с ними.: -)

...