これが現在のセットアップです。私は持っています:
- ネットワーク ドライブ上の中央 Git リポジトリ (オリジン)
- ローカル ハード ドライブ上の作業コピー
- プロジェクトをデプロイする Web サーバー上のリポジトリ
サブモジュールを使用して、GitHub でホストされているフレームワークを取り込みます。サブモジュールをリポジトリに追加すると、リポジトリが GitHub からローカルの作業ディレクトリにダウンロードされ、そこで目的のバージョンをチェックアウトし、最終的にオリジンにプッシュできると理解しています。
コードを元のリポジトリにコミットすると、フレームワークのコピーもプッシュされますか?それとも、より良い言葉がないために、リモートリポジトリへの参照/ポインターを保存するだけですか?
このフレームワーク (現在 Git では管理されていません) でよく使用するサードパーティ ツールのリポジトリをいくつか作成して、それらを必要とするプロジェクトに簡単に取り込めるようにしたいのでお願いします。目標は、必要に応じてローカルのサードパーティ リポジトリを更新し、個々のプロジェクトを新しいバージョンで更新することです。
プロジェクトをデプロイする方法は、プロジェクトを Web サーバーにプッシュすることです。Web サーバーは、post-receive
フックを使用してアプリケーションをデプロイします。潜在的な問題は、Git がサブモジュール自体をプッシュせず、ポインターのみをプッシュする場合です。これはそのためであると思います。これはgit submodule init && git submodule update
、Web サーバーがサブモジュールのコンテンツのコピーを取得する方法がないためです。
私が考えることができる最も簡単な解決策は、GitHub や Bitbucket などの公開サービスを使用してこれらのサードパーティ ツールをホストすることですが、別の方法があるかどうか疑問に思っています。