免責事項、私はあなたの数日前にサブツリーについて学習していると思います:-)
使用しているだけの場合git subtree push
、変更を抽出してプッシュするのに十分な情報をサブツリーに提供していません。
リポジトリのクローンを正しく作成した場合、サブツリーはすでにそこにあります。サブツリーには、プッシュ元のサブツリーを指定する必要があります(1つしかない場合でも)。また、プッシュ先を知る必要があります。具体的には、トップレベルのリポジトリにプッシュする必要はありません。したがって、次のようなものが必要です。
git subtree push --prefix=lib git@github.com:arges-github/lib.git master
明らかに、リポジトリとrefspecは、リポジトリに一致するように変更する必要があります。
ここで何が起こっているかを調べたい場合(そしてそれは役に立ちます)、サブツリーは実際にサブツリー内のファイルに影響を与える変更を別のブランチに分割し、それをサブツリーリポジトリにプッシュします。これが発生することを確認するには、subtree split
git subtree split --rejoin --branch=shared-changes --prefix=lib
次に、作成したブランチを確認します。
git checkout lib-changes
そして、それらを手動でプッシュします
git push git@github.com:arges-github/lib.git master
これが機能しない場合は、サブツリーをリポジトリにマージしていない可能性があります。サブツリーを追加する場合:
git subtree add --squash --prefix lib git@github.com:arges-github/lib.git master
また、サブツリーをマージして、トップレベルのリポジトリにプッシュバックする必要があります。
git subtree pull --squash --prefix lib git@github.com:arges-github/lib.git master
git push