в Git поддерево добавить: изменить префикс сохраняя локальные коммиты


Есть ли простой способ переместить поддерево, добавленное с помощью следующего cmd

git subtree add --prefix=<prefix> <repository> <commit>

Другими словами, можно ли изменить префикс с dir1 на dir2.

Ответ на поддерево git: можно ли изменить ветвь/путь поддерева в раздвоенном репозитории? предлагает удалить поддерево, а затем добавить его обратно.

Это не работает для меня, потому что мне нужно сохранить локальные коммиты, есть ли другой способ?

1 5

1 ответ:

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

git subtree split --prefix=dir1 HEAD

# Create a branch with the printed commit just to use it later
git branch split_dir_1 <split_commit>

А затем сделайте то, что было описано в вопросе , который вы упомянули, удалите подкаталог и повторно добавьте поддерево.

git rm dir1
git commit
git subtree add --prefix=dir2 . split_commit

Имейте в виду, что при этом вы все равно сможете увидеть в истории репозитория, когда было создано, удалено и добавлено первое поддерево.