2012-02-25 5 views
1

私は2つのリモートプロジェクト:MainProjectAppsProjectの所有者であるとします。プロジェクトAのサブフォルダ内のプロジェクトB - プロジェクトBのリモートへのローカル変更をコミットする

AppsProjectMainProjectのサブディレクトリ(apps/)にあります。

私はMainProjectのディレクトリでsubtree merge戦略(参照:Pro Git Book
を使用することを試みました。私はそれをやった:

$ git remote add apps-remote [email protected]:me/apps.git 
$ git checkout -b apps-branch apps-remote/master 
$ git checkout master 
$ git read-tree --prefix=apps/ -u apps-branch 
$ git checkout apps-branch 
$ git pull 

は実際に私が今欲しいものAppsProjectリモートリポジトリとapps/MainProjectにリモートリポジトリにないものを何にでもローカルapps/変更をコミットできるようにすることです。

どうすればよいですか?

答えて

2

$ git clone --recursive [email protected]:me/MainProject.git 

それともあなたはそれが既にどこかにクローン化されていたが、あなたはサブモジュールを追加する前であれば:

$ git submodule update --init 
#Or without the --init to update the submodule 

サブモジュールに変更を加えるときは、最初にサブモジュール内の変更をコミットする必要があります。メインリポジトリの変更をコミットするようにコミットします。サブモジュールは、メインリポジトリ内の最後のコミット時に常に固定されます。

+0

apps /ディレクトリに追加してコミットしますか? AppsProjectリモートにプッシュする方法は? – Memke

+0

リモートリポジトリを参照しています。変更を加え、コミットし、プッシュします。 – jdi

1

私は内側のプロジェクトをサブモジュールにします。これにより、外部プロジェクトを別個に扱うことができます。ブランドの新しいクローンを作成する

$ cd MainProject 
$ git submodule add [email protected]:me/apps.git apps 
$ git commit -a -m "added a submodule" 
$ git push 

:サブモジュールを作成するには