Как перейти к фиксации в той же ветке в git

#git

#git

Вопрос:

Предположим, я нахожусь в ветке develop .

Я нахожусь в фиксации (A) , и я делаю некоторые плохие вещи и делаю еще одну фиксацию (B) .

Предположим, что отмена плохих действий, которые я сделал, — это очень болезненная работа, как я могу сделать еще одну фиксацию впереди (B) в той же ветке develop ?

 CURRENT STATE:
 _______________________________________
|develop|   (A) ----> (B)
 ‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾

WHAT I IMAGINE:
 _______________________________________
|develop|   (A) ----> (B)       (D)
 ‾‾‾‾‾‾‾‾‾‾‾‾|‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾🡑‾‾‾‾‾‾
             |                   | 
 ____________🡓___________________|______
|bugfix |   (C) -----------------'
 ‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾
  

Я не собираюсь объединяться, так как я не хочу использовать (B) . Я также не могу стереть (B) , поэтому принудительное нажатие не является вариантом.

Что мне делать в этой ситуации?

Если есть способ поместить новую фиксацию (впереди (B) ), состояние которой равно (A) , это также было бы приемлемым решением.

Ответ №1:

Вы можете «вернуться» B. Это эффективно создает новую фиксацию, которая «отменяет» изменения, внесенные B. Это работает с одним неудачным коммитом или целой серией неудачных коммитов.