Переключитесь на ветку MasterBranch
и выбросьте содержимое ветки в каталог MasterSubdirectory
, сделайте коммит:
git checkout MasterBranch
mkdir MasterSubdirectory
git mv -k * MasterSubdirectory
git commit -a
Это оставит вашу ветку только с одним директором.в OtherVersionBranch:
git checkout OtherVersionBranch
mkdir OtherVersionSubdirectory
git mv -k * OtherVersionSubdirectory
git commit -a
Объединить одну ветку в другую
git checkout MasterBranch
git merge OtherVersionBranch
git branch -d OtherVersionBranch
Теперь у вас есть одна ветка MasterBranch
.Вы можете объединить его с master
или делать с ним все, что вы хотите.
В качестве альтернативы, вы можете заменить слияние на rebase, если вы не возражаете против переписывания истории.Это произведет более чистый порядок коммитов - сначала одну ветвь, потом другую.
И попробуйте сделать это на копии.Это сработало для меня, но мой случай был очень прост.