git サブモジュールに関連する複雑な問題/ケースがあります。私は github とサードパーティのサブモジュール (他社提供、読み取り専用) に独自のレポを持っています。サブモジュールの初期化、更新、.gitsubmodule と新しいフォルダーのマスター リポジトリへの追加などを行いました。すべて正常に動作しています。今、サブモジュールファイルにいくつかの変更を加えたり、新しいファイルをサブモジュールに追加したりしたいと思っています。私はそれを行い、サブモジュールディレクトリレベルからコミットを実行しました。フォルダーをマスター リポジトリに変更すると、git ステータスに、サブモジュール フォルダーでコミットされていないコミットが表示されます。そう... git commit -a
, git push
. (サブモジュール ディレクトリで git ステータスを確認すると、あなたのブランチが X コミットによって「origin/master」より進んでいるという情報が得られます。)
github からリポジトリの再帰的なクローンを作成すると、エラーが発生します (サブモジュールの変更が原因だと思います):
fatal: reference is not a tree: c19485a57b5152959b9a916409ad5d901c44741d
Unable to checkout 'c19485a57b5152959b9a916409ad5d901c44741d' in submodule path 'apt'
だから、私の質問は次のとおりです。
- サブモジュールで変更を行い、それらを github にプッシュ (および追跡) できますか。
- はいの場合、サブモジュールとその中の変更を含むすべてのレポを別のホストにプルできるようにするために何をしなければなりませんか (何らかのワークフロー?)。
- そうでない場合は、サブモジュールの変更を回避して、github リポジトリ レベルから変更を確認し、別のホストにプルする方法を教えてください。
- それはまったく可能ですか?