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

Kharitonov A. Dmitry kharpost at rambler.ru
Tue Sep 29 17:22:46 UTC 2009


Led wrote:
> 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
>>     
>
> Конечно, можно гланды и через извесное место удалять. Но называть этот вариант 
> лучшим?..
>   
А вы пробовали?
Я на прошлой неделе этим занимался и начал с rebase, убив больше дня и 
испортив два репозитария. Потом пошёл описанным выше путём и сделал всё 
за 2 часа. И, что мне особенно понравилось, удалось разбить правки в 
одном файле на несколько соммитов ничего не потеряв.

>
>   



More information about the Devel mailing list