Git: как отменить коммит? - PullRequest
       19

Git: как отменить коммит?

110 голосов
/ 27 ноября 2009

С SVN легко объединить коммит, но как это сделать с Git?

Ответы [ 5 ]

110 голосов
/ 29 декабря 2009

Чтобы отменить коммит merge , вам необходимо использовать: git revert -m <parent number>. Так, например, чтобы вернуть самый последний коммит слияния, используя родительский номер с номером 1, вы должны использовать:

git revert -m 1 HEAD

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

git revert -m 1 HEAD^

Используйте git show <merge commit SHA1>, чтобы увидеть родителей, нумерация - это порядок их появления, например. Merge: e4c54b3 4725ad2

документация git merge: http://schacon.github.com/git/git-merge.html

обсуждение git merge (запутанно, но очень подробно): http://schacon.github.com/git/howto/revert-a-faulty-merge.txt

103 голосов
/ 27 ноября 2009

Чтобы создать новый коммит, который «отменяет» изменения предыдущего коммита, используйте:

$ git revert <commit>

Также возможно фактически удалить коммит из произвольной точки в прошлом, перебазировав, а затем сбросив, но вы действительно не хотите этого делать, если вы уже передали свои коммиты в другой репозиторий (или кто-то другой вытащил от вас).

4 голосов
/ 27 ноября 2009

Если я вас правильно понимаю, вы говорите о

svn merge -rn:n-1

для возврата из более раннего коммита, в этом случае вы, вероятно, ищете

git revert
0 голосов
/ 29 января 2017

Если вы не хотите фиксировать или хотите зафиксировать позже (для вас все равно будет подготовлено сообщение о коммите, которое вы также можете редактировать):

git revert -n <commit>
0 голосов
/ 17 июля 2014
git reset --hard HEAD^ 

Используйте приведенную выше команду для отмены изменений слияния.

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