Git объединить и сохранить отдельно?

Есть ли способ обновить боковую ветвь информацией от другого (главного или другого), а затем продолжить ? Как перебазирование, но с сохранением старых данных?

Оригинал:

A---B---C---G---H  master
     \           
      D---E---F  branchA

Результат:

A---B---C---G---H---L  master
     \           \
      D---E---F---J---K  branchA

Таким образом, branchA получает информацию из коммитов C, G и H, (Коммит J - это то, что merge), так что фиксация K по-прежнему является побочной ветвью (и будущая фиксация L все еще находится на главной), но имеет ли обновленную информацию от мастера?

Я не Я не хочу выполнять перебазирование, потому что это приведет к следующему:

A---B---C---G---H---L  master
                 \
                  D'---E'---F'---K  branchA

Создание «новых версий» D, E и F, как если бы они произошли поверх H вместо B, и проблема в том, что коммит C и E - это переименование ключевой папки в репо, и я хочу свернуть их вместе , пока не объединяю другие обновления функций из branchA . Повторное размещение означает, что H использует новое имя папки, D 'создает старое имя папки, а E' снова удаляет его, что не является самым чистым.

Дело в том, что я хочу получить переименование этой папки (C и E) в прошлом и прекратите продвигать его вперед. В этом есть смысл? Я смотрю на это задом наперед? Или мне просто нужно разобраться с беспорядочной перестановкой "имя, переименовать" трюк, пока ветка не объединится?

23
задан MidnightLightning 5 January 2011 в 22:25
поделиться