Как я могу возвращать последний commit в прежнее состояние в Git?

Я сделал commit и немедленно после заметил, что commiteé изменения, которые я не хочу pushear в переизречение.

Есть какой-то способ возвращать того же самого в прежнее состояние поддерживая эти изменения в моей локальной копии, чтобы возвращаться в commitearlos правильно?

66
задан 01.12.2015, 11:33
4 ответа

Если ты хочешь поддержать изменения:

git reset [--mixed] HEAD~1

Если ты кроме того не хочешь загрузить commit (только двигать head в предыдущего):

git reset --soft HEAD~1

И если ты не хочешь поддержать их (и вновь в состояние предыдущего commit, на практике, разрушать последний commit полностью как будто никогда он не существовал):

git reset --hard HEAD~1
76
ответ дан 08.11.2019, 21:06
  • 1
    В действительности использовать --mixed быть и # 237; в самое правильное, так как то, что любит, revertir commit, чтобы изменять изменения и вновь делать commit – Carlos Muñoz 01.12.2015, 11:08
  • 2
    Самое натуральное состоит в том, чтобы использовать и #39; - mixed и # 39; чтобы возвращать commit в прежнее состояние и сохранять твои изменения. – krescruz 01.12.2015, 16:56

Команда git reset <commit>

Чтобы возвращать специально последний commit в прежнее состояние ты можешь использовать HEAD~1

Например чтобы возвращаться к предыдущему commit ты можешь использовать sgte я командую:

git reset HEAD~1

Параметр --mixed позволь поддерживать изменения в working tree для того, чтобы они смогли быть измененными потом, однако в существо назначенный по умолчанию способ не необходим.

В этом случае мне кажется самый подходящий выбор, так как ты хочешь исправить commit, так что ты нуждаешься revertir в index, для того, чтобы исправлять изменения.

Какие-то из опциональных параметров:

  1. --soft он не изменяет ни working tree, ни index. Только измени HEAD в указанный commit.
  2. --mixed повторно опрокинь index но не working tree так что держатся изменения, готовые быть измененными и возможно commiteados снова. Это умолчательная опция.
  3. --hard Повторно опрокинь index и working tree так что изменения теряются полностью.

Ты можешь проверять полный синтаксис в git-reset Documentation

22
ответ дан 08.11.2019, 21:06

ВїCГіmo я могу возвращать Гєltimo в прежнее состояние commit в Git?

Это правильный способ это реализовывать:

$ git reset --soft HEAD~ 

очень важно, как это упоминает другой пользователь, будь opciГіn применись, когда ты нуждаешься в том, чтобы поддержать изменения.

13
ответ дан 08.11.2019, 21:06
$ git reset --soft HEAD~  o $ git reset --soft HEAD~1       #1
// Cambios necesarios //                                    #2
$ git add ...                                               #3
$ git commit ...                                            #4

Просто ты делаешь reset soft, с которым ты оставляешь себе изменения в помещении, но возвращаешь commit в прежнее состояние, despuГ©s ты делаешь то, что ты хочешь, и вновь делаешь commit как querГ-эксперт первый раз.

16
ответ дан 08.11.2019, 21:06

Теги

Похожие вопросы