Как мне отменить список коммитов в git? - PullRequest
1 голос
/ 06 января 2011

У меня есть исходное дерево с git, и мне нужно отменить все свои изменения, которые я сделал с сентября, я знаю идентификатор коммита и могу также сгенерировать список коммитов, которые я хочу отменить с помощью git rev -list, вопрос в том, как мне передать этот список в git, чтобы он выводил их все?

Или, если есть лучший способ сделать это, я был бы очень признателен.

Ответы [ 2 ]

1 голос
/ 06 января 2011
0 голосов
/ 07 января 2011

Если вы хотите уничтожить все изменения после данного коммита, вы можете сбросить ветку, над которой вы работаете (например, master), в коммит. git reset <commit> делает то, что он перемещает ваш HEAD в данный коммит. Следующие коммиты отбрасываются.

A---B---C---D-master

тогда

git reset --hard <SHA1-of-B>

дает вам:

A---B-master

--hard предназначен для отмены ваших последних изменений из индекса и ваших локальных файлов.

Если у вас несколько ветвей, это может быть немного сложнее, но вы поймете идею.

Обратите внимание, что отклоненные коммиты могут быть восстановлены с помощью git reflog, но вы вряд ли увидите их, если не пытаетесь. В конце концов, отклоненные коммиты навсегда исчезнут, особенно если вы используете git gc то и дело.

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