Предположим, у меня есть git-репозиторий, содержащий original.script
.В какой-то момент я хочу сделать что-то похожее на original.script
, поэтому я решил использовать его в качестве отправной точки для нового сценария modified.script
:
% git branch before-cp
% cp original.script modified.script
% git add modified.script
% git commit -m "creating a copy to modify"
% vim modified.script #...
% git add modified.script
% git commit -m "made some modifications"
Теперь, в какой-то момент, я обнаружил,ошибка в original.script
.Я могу просто пропатчить original.script
, но это не поможет modified.script
, что может сохранить ошибку.Я бы хотел исправить original.script
до того, как оно было скопировано, выполнив что-то вроде:
% git checkout before-cp
% vim original.script #...
% git add original.script
% git commit -m "fixing a bug in original before I start copying it"
% git checkout master
% git rebase before-cp
Но это не работает так, как я хочу.Повторно созданный коммит "создание копии для изменения" по-прежнему содержит копию modified.script
, которая идентична непатентованной версии original.script
(из before-cp^
).
Я согласен с моей первой попыткойнеправильный способ сделать это - но есть ли правильный способ сделать это?Чтобы задним числом исправить файл так, чтобы будущие копии копировали исправленную версию?Или мне придется вручную исправить modified.script
(и любые другие файлы в поддереве копирования original.script
).