私は非常によく似た問題を抱えていました
最初にサブツリーを作成した方法は次のとおりです
git remote add -f sub_project url_to_remote_repository/project.git
git merge -s ours --no-commit sub_project/master
git read-tree --prefix=sub/project/ -u sub_project/master
git commit -m "Added subtree merged in sub/project"
「プロジェクト」レポから変更を取得するために、私はやっていました
git pull -s subtree sub_project master
ここで、ローカル リポジトリを github にプッシュし、別のマシンから github リポジトリのクローンを作成しました。その時点で、予想されるすべてのファイルを sub/project に取得しました。しかし、リモートではなく、サブ/プロジェクトとの関係。だから私は次のことをしました
git remote add -f sub_project url_to_remote_repository/project.git
git merge -s ours --no-commit --squash sub_project/master
git pull -s subtree sub_project master
そして、それはうまくいきました。以前と同じように、その複製されたリポジトリからサブツリーを管理できるようになりました
git pull -s subtree sub_project master
ノート:
1) 私たちのプロジェクトでは、ユーザーにとって本当に良くない git サブモジュールを使用する前でした。そのため、 git のサブツリー システムに切り替えました。
2) Windows マシンで (git バージョン 1.7.9.msysgit.0 を使用して) これらの操作を実行すると奇妙なエラーが発生し、Linux でも同じ操作が正常に行われました。そのため、サブツリーを操作するために、私はよく Linux を使用します (エラーが発生した場合は、Linux でも同じことを試します)。
これが役立つことを願っています。