1. ホーム
  2. git

[解決済み] git リポジトリにリンクされた依存関係を持つにはどうすればよいですか?

2022-04-22 13:03:22

質問

私のスクリプトでは、独自のリポジトリを持っているライブラリ(私または他の人の)をよく使用します。自分のレポにそれらのライブラリを複製して、新しいバージョンが出るたびに更新に追われるのは嫌です。 しかし、誰かがレポをクローンしても、ローカルで動作し、リンク切れにならないようにする必要があります。

何かいい方法はないでしょうか?

解決方法は?

gitのsubmoduleを使えば可能です。あなたのレポジトリで、してください。

git submodule add path_to_repo path_where_you_want_it

つまり、ライブラリのリポジトリがURLとして git://github.com/example/some_lib.git で、それを lib/some_lib をプロジェクトに入力することになります。

git submodule add git://github.com/example/some_lib.git lib/some_lib

この作業は、リポジトリのトップレベルのディレクトリから行う必要があることに注意してください。ですから cd を最初に置くディレクトリに移動します。

サブモジュールを追加した後、あるいは誰かがあなたのリポジトリを新しくチェックアウトするたびに、あなたは行う必要があります。

git submodule init
git submodule update

そして、あなたが追加したすべてのサブモジュールは、あなたと同じリビジョンでチェックアウトされます。

あるライブラリの新しいバージョンに更新したいとき。 cd をサブモジュールに追加してプルします。

cd lib/some_lib
git pull

次に git status が表示されるはずです。 lib/somelib を変更したセクションにリストアップします。そのファイルを追加し、コミットすれば、最新の状態になります。共同作業者がそのコミットを自分のリポジトリに取り込むと、次のように表示されます。 lib/somelib を実行するまでは、変更されたものとして git submodule update を再び使用します。