2012-01-17 12 views
18

私自身がGit Source Controlを持っているXcodeプロジェクトを持っています。 ライブラリフォルダ私はGitHubから8つのGitプロジェクトをクローンしました。彼らは私自身のGitリポジトリの中にあり、これらのライブラリを私のgitにコミットして追加しました。Git:プロジェクトでgitライブラリを扱う方法

これらのgitライブラリのすべてのコードを自分のリポジトリに入れるのではなく、自分のリポジトリのクローンを作成するときにgitがリポジトリからコードをダウンロードできるようにする方法はありますか?それとも、プロジェクト内に他のgit reposを含めるのが普通ですか?

+0

http://stackoverflow.com/questions/2140985/setup-a-git-external-for-remote-レポ – tobiasbayer

答えて

24

確かに次の操作を行います。

  1. をあなたのターミナルを開き、あなたはすでに
  2. を追加している可能性があるサードパーティ・フォルダを削除すると実行次のコマンド

    cd /path/to/your/main/repo 
    git submodule add [email protected]:someuser/somerepo.git somerepo 
    git commit -m "Added submodules" 
    
  3. は今、代わりにそれらのファイルをコピーするので、あなたのプロジェクト内の他のリポジトリへの参照を持っています:

    http://i.minus.com/jcphKnFxLexk8.png

編集:今、あなたはにサブモジュールを更新する場合

より最近のコミットでは、以下を行うことができます:

cd somerepo 
git pull # You can also checkout a branch/tag etc. 
cd .. 
git add somerepo 
git commit -m "Telling the main repo to update the reference to the referenced repo" 
+0

ありがとうございます。 'git submodule add https://github.com/AlanQuatermain/AQGridView.git Libraries/AQGridView'を' [email protected]:... 'の代わりに使うことはできませんでしたか? – dhrm

+0

これらのサブモジュールはどのように更新できますか?彼らは私のレポを引っ張ったときに自動的に引っ張られるのですか、あるいは彼らのフォルダの中に入って 'git pull 'をしなければなりませんか? – dhrm

+0

@DennisMadsenはい、あなたは 'somerepo'の変更を引き出すgit pullを行うことができます。しかし、メインリポジトリにも参照を更新するように指示する必要があります。私の更新された記事を見てください。ところで、私はリポジトリから、gitですでにアクセス可能なコードを複製する必要がないので、サブモジュールは非常に便利です。 – Besi