LINUX.ORG.RU

как удалить коммиты выборочно?

 


0

2

помогите пожалуйста удалить несколько коммитов

есть ветка dev. от неё я отбранчевал ветку feature/1, в которой есть несколько коммитов. пусть для определённости это выглядит приблизительно так:

* 1790424 2018-03-27 | s2 HEAD
* 6fd3019 2018-03-27 | s1 
* 0eac5a6 2018-03-27 | 3 
* b13de08 2018-03-27 | 2 
* 344b963 2018-03-27 | 1 
* 246a014 2018-03-27 | 0 

я хотел бы удалить коммиты: b13de08, 344b963. при этом важно чтобы название ветки осталось таким же

есть идея создать временную ветку и перетащить в неё черри-пиками нужные мне коммиты. потом удалить ветку feature/1 и переименовать временную ветку в feature/1

минус такого подхода в том, что если коммитов в ветке не 6, а 36, то придётся тратить много времени на повторяющиеся действия. а мне хотелось бы узнать универсальный способ


  • git rebase -i 246a014
    
  • Удалить строки с b13de08 и 344b963.
  • Сохранить файл.

Там в комментариях будет справка о возможных действиях, ну и в большем объёме можно в других местах почитать.

xaizek ★★★★★
()

есть идея создать временную ветку

ветку ты полюбому создай, это элементарно и удобно (git checkout -b my_tmp). После изменения истории переименуешь как тебе нужно и запушишь.

я хотел бы удалить коммиты:

git rebase -i , как уже упомянули. Отличная вещь!

Ах да, сразу упомяну волшебную команду, которую в бытность нубоm в гите я не знал. Если вдруг ты потерял «концы», какую-то ветку, коммит, ребейзнул не туда и боишься что потерял код - используй 'git reflog'

Deleted
()
Последнее исправление: Deleted (всего исправлений: 1)

git help rebase

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.