[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