2016-07-19 4 views
0

私は親ディレクトリに入ることができるこのコマンドをオンラインで見つけたので、各ディレクトリを通り、それぞれのgitリポジトリを更新します。私はステータスを取得するためにこれを行うこともできます。出力をクリーンアップし、よりユーザーが読めるようにする方法があるのか​​どうか疑問に思っていました。複数のGitリポジトリを更新する - 出力を改善する

ls | xargs -I{} git -C {} pull 

これはうまく動作しますが、私にはその応答があります。私はリポジトリの名前を表示し、それからレスポンスなどを表示したいと思います。これを簡単に実行する方法はありますか?うまくいけば何らかの形でエイリアスを使用していますか?

+0

Googleは複数のgitリポジトリを操作することができます*レポ*というツールがあります。 – ElpieKay

答えて

2

これは必要な操作ですか?

for dir in * ; do if [ \! -L ${dir} -a -d ${dir}/.git ] ; then (cd ${dir} ; echo ":::: ${dir} ::::"; git pull) ; fi ; done 

それはあなたの現在のディレクトリ内のすべての項目を通過し、項目はgitリポジトリのトップであるならば、それはディレクトリ名を印刷しgit pullを実行します。 git pullの後に、各リポジトリで実行する他のコマンドを追加できます。

EDIT:

あなたはシェル関数として~./bash_aliasesに追加して別名設定できる:何らかの理由ではbashの代わりにgitのエイリアスとして追加したい場合は、

git-pull-all() { 
    #command here 
} 

かあなたはそれを作成するときにエイリアスが、あなたは!でコマンド名を付加することができます

git config --global alias.pull-all '!COMMAND_HERE' 
+0

はい、うまくいきましたが、何らかの方法でエイリアスすることができるようにしたいので、親レベルで "git pull-all"のようなものを実行できます。 "find"はgitコマンドではないので、エイリアスは私の理解からは機能しません。 –

+0

ありがとう、エイリアスのソリューションは完全に機能しました。 –

関連する問題