web-dev-qa-db-ja.com

gitレポで依存関係をリンクするにはどうすればよいですか?

私のスクリプトでは、自分のリポジトリを持っているライブラリ(私のライブラリまたは他のライブラリ)をよく使用します。リポジトリ内でそれらを複製し、新しいバージョンがリリースされるたびにそれらを更新することに固執したくありません。ただし、誰かがレポを複製しても、ローカルで機能し、リンクが壊れていません。

私が何ができるかについてのアイデアはありますか?

137
Lea Verou

これは、gitのサブモジュールで実行できます。リポジトリで、次を実行します。

git submodule add path_to_repo path_where_you_want_it

そのため、ライブラリのリポジトリのURLがgit://github.com/example/some_lib.gitlib/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もう一度。

195
Emily