[devel] Q: [git] Как разбить большой коммит на несколько?

Led ledest at gmail.com
Tue Sep 29 17:05:03 UTC 2009


On Tuesday 29 September 2009 19:59:27 Kharitonov A. Dmitry wrote:
> Aleksey Avdeev wrote:
> > Led пишет:
> >> On Tuesday 29 September 2009 18:24:42 Aleksey Avdeev wrote:
> >>> Led пишет:
> >>>> On Tuesday 29 September 2009 17:27:55 Aleksey Avdeev wrote:
> >>>>> Приветствую.
> >>>>>
> >>>>>    А как, в git, разбить один большой коммит на несколько?
> >>>>>
> >>>>> PS: Описание решения подобной задачи мне кажется где-то
> >>>>> попадалось. Но
> >>>>> сейчас, когда оно потребовалось -- что-то не находиться...
> >>>>
> >>>> git help rebase
> >>>> смотреть секцию SPLITTING COMMITS
> >>>
> >>>    Спасибо, это оно (git gui весьма сильно помогает).
> >>>
> >>>    А есть ли вариант rebase, учитывающий мержы? В смысле: как сделать
> >>> rebase так, чтобы была не одна ветка, а дерево?
> >>>
> >>> PS: Собираюсь делать rebase кусками, между точками мержей, а сами мержи
> >>> -- повторять руками... Есть ли путь проще?
> >>
> >> rebase с ключём -p
> >> Но лучше резервную копию перед этим сделать:)
> >
> >   Бранча или всего репозитория?
>
> Бранча.
> Это совсем не лучший вариант. Лучше создать патч из комита, который
> хочешь разбить примерно так :
> git-show git-show -p --raw HEAD >same.patch
>
> потом руками в редакторе создать из него несколько патчей и приложить
> обратно примерно так:
> git-apply --whitespace=nowarn --numstat --index --apply same.patch;
> git-rm (если нужно)
> git-add (если нужно)
> git-commit -a

Конечно, можно гланды и через извесное место удалять. Но называть этот вариант 
лучшим?..


-- 
Led


More information about the Devel mailing list