Git сплит и пу sh репо - PullRequest
       6

Git сплит и пу sh репо

0 голосов
/ 16 марта 2020

Я пытаюсь создать установку монорепо, например 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'

Вопросы:

  1. Есть ли команда, чтобы увидеть, что в этом sha1?
  2. Как можно я делю и пу sh Sha1 в новый репо?
  3. Можно ли разделить и пу sh с тегами?
  4. Вы всегда разделяете мастер ветку, когда или зачем разделять ветку.
  5. При работе с тэгами, например 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

Это правильный способ разделения и нажатия

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...