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

Kharitonov A. Dmitry kharpost at rambler.ru
Tue Sep 29 16:59:27 UTC 2009


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



More information about the Devel mailing list