2012-09-13 6 views
5

バージョン管理されているメインプロジェクトがある場合。git remotesはどのように機能しますか?

私はその後、私はその後、git pull myplugin master

を行うことができますし、それだけでは、リモートからの変更にプルサードパーティのプラグインの

git remote add myplugin <url>

をリモートを追加します。

今、私のプロジェクトのようにセットアップであると言うことができます:

/ 
/index.php 
/whatever 

と私はリモートで引っ張るとき

/ 
/whatever.php 

は私が

/index.php 
/whatever 
/myplugin 
/myplugin/whatever.php 

で終わるようなリモートセットアップでこれはいい。私は私がプッシュされているものgit push myplugin masterを発行する場合、

をmypluginする変更を行った場合、私は疑問に思って何

は、 ありますか?

mypluginに変更を加えるだけですか? またはリモートは第2のリポジトリとして機能し、リポジトリ全体をコミットしますか?

答えて

6

あなたは/myplugin/whatever.phpで、git pull myplugin後、終わるだろうからすべてあなたのローカル( 'myplugin'からの変更だけではなく)へのレポをコミットします。

「myplugin」からの変更のみをプッシュするか、「myplugin」でコミットを引き出すこと)は、submodulesと呼ばれています。

あなたは、あなたの質問に記述のような演技を二ネストされたGitのレポを見つけるだろうしたディレクトリmypluginを、追加します
git submodule add url/myplugin myplugin 


これは単なる新しいリモートではなく、サブディレクトリに特定のSHA1で別のリポジトリを含めるためのサブモジュールURLです。

0

リモートは2つ目のリポジトリのように振る舞います。プッシュコマンドを発行すると、GITは変更されたものをリモートにコピーし、ローカルリポジトリに効率的に戻します。

プッシュがサブディレクトリに移動するかどうかは、答えが「はい」の場合です。

まだローカルリポジトリにコミットされていない変更がリモートにプッシュされるかどうかを確認する場合は、noです。リモートリポジトリはすでにそのすべての歴史を引っ張り、あなたのレポにそれをマージする、またはあなたを押して、リモートの手段を追加する(ないjuut whatever.php

/myplugin/whatever.phpが含まれている場合にのみ

関連する問題