5

バージョン管理されているメインプロジェクトがある場合。

次に、サードパーティのプラグイン用のリモコンを追加します

git remote add myplugin <url>

その後、私はすることができますgit pull myplugin master

そして、そのリモートから変更を取り込むだけです。

ここで、私のプロジェクトが次のように設定されているとしましょう。

/
/index.php
/whatever

リモコンは次のように設定されています

/
/whatever.php

リモートを引っ張ると、

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

これはいい。

私が疑問に思っているのは、mypluginに変更を加えた場合、

git push myplugin masterプッシュされたものを発行した場合はどうなりますか?

mypluginの変更のみをプッシュしますか?または、リモートは2番目のリポジトリとして機能し、リポジトリ全体をコミットしますか?

4

2 に答える 2

6

リモートリポジトリがすでに含まれている場合git pull mypluginにのみ、後になります(juutではありません)/myplugin/whatever.php/myplugin/whatever.phpwhatever.php

リモートを追加するということは、そのすべての履歴をプルしてリポジトリにマージするか、すべてのリポジトリからリモートにコミットをプッシュすることを意味します(ローカルからの変更だけではありません' myplugin')。

あなたが説明しているもの(「myplugin」からの変更のみをプッシュするか、「myplugin」でのみコミットをプルする)は、サブモジュールと呼ばれます。

 git submodule add url/myplugin myplugin

これにより、ディレクトリmypluginが追加され、質問で説明したように動作する2番目のネストされたGitリポジトリが見つかります。
これは単なる新しいリモートではなく、特定のSHA1にある別のリポジトリをサブディレクトリに含めるためのサブモジュールURLです。

于 2012-09-13T05:32:31.207 に答える
0

リモートは1つであるため、2番目のリポジトリのように機能します...プッシュコマンドを発行すると、GITは変更されたものをリモートにコピーし、ローカルリポジトリと効果的に一致させます。

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

ローカルリポジトリにまだコミットされていない変更をリモートにプッシュするかどうかを尋ねる場合、答えはノーです。

于 2012-09-13T05:15:16.310 に答える