4

ディレクトリにいくつか (約 10 ~ 15) の Git リポジトリがあります。

~/plugins/admin
~/plugins/editor
~/plugins/etc

それぞれに独自の個別のリポジトリとリモート サーバーがあります。

問題は、私がしなければならないすべてのリポジトリからすべての変更をプルすることです:

cd ~/plugins/admin
git pull origin master
password: ********
cd ..

cd ~/plugins/editor
git pull origin master
password: ********
cd ..

cd ~/plugins/etc
git pull origin master
password: ********
cd ..

1 つのコマンドですべてのリポジトリをプルするように Git サブモジュールを設定するにはどうすればよいですか?

または、Windows、Linux、および Mac (3 つのオペレーティング システムすべてを使用しているため) 用のスクリプトを作成して、同じことを効果的に行うこともできます。リポジトリは異なるブランチにある可能性があり、必ずしも追跡ブランチが設定されているとは限らないことに注意してください。

同じメモ:

  • パスワードはすべてのリポジトリで同じです
  • リモートサーバーは同じリポジトリです(明らかに別のリポジトリ/ディレクトリにあります)
  • パスワードを一度だけ入力したい
  • すべてのリポジトリをプルするコマンドを 1 つだけ入力したい
  • 公開鍵/秘密鍵はオプションではありません
  • ssh経由でリモートに接続しています
4

3 に答える 3

9
bash-3.2$ git submodule add git@repoUrl:SubmoduleName.git existing/submodule/path
Adding existing repo at 'existing/submodule/path' to the index

いくつかの git リポジトリが既に存在する場所からサブモジュールを追加しようとすると、このリポジトリがインデックスに追加されます。

于 2010-12-01T08:04:14.277 に答える
2

Git と同じように Perl を使用します。それぞれのパスワードを持っていると仮定します:

#!/usr/bin/perl

@dirs = ("admin", "editor", "etc" );
foreach(@dirs)
{
  chdir($_);
  exec( "git pull origin master" );
  chdir("..");
}

もう少し磨きをかけると、エラー処理を改善し、毎回ではなく 1 回だけパスワードを読み取ることができます。

于 2010-11-22T14:33:08.250 に答える