Если каждая ветвь содержит только соответствующий код, то это довольно просто. На самом деле даже проще создать новый репо с git clone --single-branch --branch <original-repo-url>
, но если вы уже init
отредактировали и просто хотите внести изменения в историю, вы можете сделать что-то вроде
git fetch <original-repo-url> +frontend:master
Вы получите странное поведение, если не создали первую ветку в новом репо - так что в этом случае вы сначала просто создадите фиктивный коммит, а затем отсоединитесь от ветви, чтобы обновление прошло.
git commit --allow-empty -m temp
git checkout --detach
git fetch <original-repo-url> +frontend:master
git checkout master
С другой стороны, если каждая из ваших веток содержит весь код, и вы хотите переписать историю для каждого «нового» репо, чтобы включить только соответствующий код, то вы, вероятно, захотите использовать git filter-branch
. У него много параметров, поэтому без более подробной информации я не могу точно сказать, какие параметры вы бы использовали, но фильтр подкаталогов может представлять интерес.
Документы на https://git -scm.com / docs / git-filter-branch