Я пытаюсь создать установку монорепо, например Symfony, и пытаюсь разделить пакет из монорепо https://github.com/symmono/symmono в собственное репо https://github.com/symmono/framework-bundle, используя split sh lite https://github.com/splitsh/lite, но я не могу разобраться с командами split и pu sh.
При использовании split sh для split вы получаете SHA1 это можно использовать для доставки пакета sh в собственное хранилище. Когда используется git разделение на подстуки, извлекается тот же самый SHA1, я полагаю, что это та же самая техника c. После получения SHA1, я не могу найти способ поставить sh его в новый репо.
# splitsh, trying to split the master branch FrameworkBundle to it's own repo
git splitsh --prefix=packages/Symmono/Bundle/FrameworkBundle
# sha1
0 commits created, 0 commits traversed, in 0s
c5a195e73c6e2317f44fae252c1d2ae3beb323e7
Теперь я пытаюсь выложить sh в репозиторий с фреймворками
# at this moment the framework-bundle is an empty repo
# command 1 with respone
git push git@github.com:symmono/framework-bundle.git c5a195e73c6e2317f44fae252c1d2ae3beb323e7
fatal: c5a195e73c6e2317f44fae252c1d2ae3beb323e7 cannot be resolved to branch
# command 2 with respone
git push git@github.com:symmono/framework-bundle.git c5a195e73c6e2317f44fae252c1d2ae3beb323e7:master
error: unable to push to unqualified destination: master
The destination refspec neither matches an existing ref on the remote nor
begins with refs/, and we are unable to guess a prefix based on the source ref.
error: failed to push some refs to 'git@github.com:symmono/framework-bundle.git'
Пример разделения ветвей
# branch split example
# when reading readme the --target flag shoud automatically create a branch for the split by passing a branch name, when running below command om main master monorepo
git splitsh --prefix=packages/Symmono/Bundle/FrameworkBundle --target=origin/0.1
0 commits created, 0 commits traversed, in 8ms
c5a195e73c6e2317f44fae252c1d2ae3beb323e7
# trying to push to branch
git push git@github.com:symmono/framework-bundle.git c5a195e73c6e2317f44fae252c1d2ae3beb323e7 0.1
error: src refspec 0.1 does not match any.
error: failed to push some refs to 'git@github.com:symmono/framework-bundle.git'
Вопросы:
- Есть ли команда, чтобы увидеть, что в этом sha1?
- Как можно я делю и пу sh Sha1 в новый репо?
- Можно ли разделить и пу sh с тегами?
- Вы всегда разделяете мастер ветку, когда или зачем разделять ветку.
- При работе с тэгами, например v2.1.2, следует ли работать с веткой 2.1 и рассматривать основную ветку как новую выпущенную ветку. В этом примере для v2.2?
Обновление
Я заставил его работать, чтобы разделить ветку и тег. На монорепо я создал ветку,
git checkhout -b 0.1
внес некоторые изменения. Теперь для разделения, чтобы пакет также получил ту ветвь, я использовал следующую команду
# branch
git splitsh --prefix=packages/Symmono/Bundle/FrameworkBundle #5496113d8856bb00d11325153712a165c2071c3b
# push
git push git@github.com:symmono/framework-bundle.git 5496113d8856bb00d11325153712a165c2071c3b:refs/heads/0.1
# tag
git splitsh --prefix=packages/Symmono/Bundle/FrameworkBundle --target=tags/v0.1.2 # 5496113d8856bb00d11325153712a165c2071c3b
git push git@github.com:symmono/framework-bundle.git 5496113d8856bb00d11325153712a165c2071c3b:refs/tags/v0.1.2
Это правильный способ разделения и нажатия