Как сбросить главу ветки master на предыдущий коммит с GitPython - PullRequest
1 голос
/ 10 мая 2019

Я хочу существенно отменить изменения в моей основной ветке. Я могу найти свою историю коммитов, выполнив:

import git
repo = git.Repo('repos/my-repo')
commits = repo.iter_commits('master',max_count=10)

но я не уверен в том, как навести голову, скажем, на коммит, в котором сообщение содержит «reset to me». Мне известно о repo.git.reset('--hard'), но я не знаю, как правильно его использовать. Спасибо

1 Ответ

1 голос
/ 10 мая 2019

Если вам известен номер коммита, как в последнем коммите = 1, секунде = 2 и т. Д., То вы можете использовать оператор ~ вместе с HEAD для указания на коммит. HEAD ~ 1 = последний коммит, HEAD ~ 2 = второй коммит.

Следовательно, чтобы удалить последний коммит, вы можете использовать:

import git
repo = git.Repo('repos/my-repo')
repo.head.reset('--hard HEAD~1', index=True, working_tree=True)

См. этот вопрос, чтобы узнать больше о том, как идентифицировать коммит.

...