Как временно удалить последний коммит с помощью Git? - PullRequest
8 голосов
/ 26 марта 2012

Предположим, у меня есть следующие коммиты git:

  1. aaaaaa
  2. bbbbbb
  3. cccccc (последний)

Я бы хотел вернуться к bbbbbb и продолжить разработку с этого момента.По сути, я хочу удалить cccccc на данный момент и иметь возможность получить его в будущем (я знаю, что мне все еще понадобится cccccc).Должен ли я вернуть cccccc или откат к bbbbbb?

Ответы [ 3 ]

8 голосов
/ 26 марта 2012

Просто сделай

git branch for_later
git reset --hard bbbbbb

Конечно, не делайте этого, если cccccc уже нажата. В этом случае используйте возврат.

7 голосов
/ 26 марта 2012

Просто сделайте:

git checkout -b dev_on_b bbbbbbb

, который оставит ветку только с cccccc и даст вам новую ветку, начиная с bbbbbb.Если вы хотите вернуться к использованию ccccc, вы можете сделать следующее:

git merge branch_with_cccccc          # bring cccccc into dev_on_b

или

git checkout branch_with_ccccc
1 голос
/ 26 марта 2012

Правильное решение зависит от того, является ли это публичным git-репозиторием или нет.

Если вы используете эту команду, git revert HEAD^, тогда она вернется к (2), что может быть правильным.

Но вам нужно будет убедиться, что вы вернетесь к (3), когда сделаете (4), а затем объедините изменения при повторной фиксации.

Возможно, вы захотите посмотретьпри этом будут обсуждаться различные варианты в зависимости от ситуации: http://book.git -scm.com / 4_undoing_in_git _-_ reset, _checkout_and_revert.html

...