2012-01-02 3 views
9

Я должен использовать Git и хочу отменить одно сообщение, которое было зафиксировано до конца. В Hg это hg backout. Что такое аналоговая команда в Git?Как сделать «hg backout X» в Git?

(я duckduckwent перед публикацией этого и DonT посмотрят аналоговую команду.)

ответ

7

Это звучит, как вам нужно мерзавец вернуться :) С другой стороны, если вы хотите, чтобы удалить все доказательства того, что, выделяющие когда-либо случилось, вы могли бы сделать git rebase, чтобы избавиться от него. Но будьте осторожны, если вы уже опубликовали это сообщение, которое видно, поскольку вы можете создавать проблемы для других людей.

Вот ссылка идет о Revert:

http://gitready.com/intermediate/2009/03/16/rolling-back-changes-with-revert.html

В качестве альтернативы, просто Google для ручной документации.

+2

Я предпочитаю duckduckgoing над прибегая к помощи. –

+0

Lol не понимает, почему нет :) –

+3

Существует альтернатива 'git rebase', если вы хотите полностью избавиться от n коммитов из головы:' git reset --hard HEAD ~ n' – fge

12

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

git revert <commit_hash> 

Это добавит новый коммит, который возвращается commit_hash совершить.

Если вы хотите, чтобы удалить специфический совершить путем переписывания истории, вы можете сделать:

git rebase -i <commit_hash>^ 

Откроется редактор. Просто удалите строку, содержащую commit_hash, которую вы хотите удалить, сохранить файл и выйти из редактора. Батарея будет удалять commit_hash фиксация.

3

Существует официальная Git и Hg эквивалентные команды поддерживаются здесь:

https://www.mercurial-scm.org/wiki/GitConcepts#Command_equivalence_table

И эквивалент hg backout является git revert

+0

Это полезный стол. Однако, применяя его в качестве ссылки, имейте в виду, что это «относится к Mercurial v1.8 и Git v1.7.4». – jk7

 Смежные вопросы

  • Нет связанных вопросов^_^