私が持っているgitosisのインストールでホストされているすべてのリポジトリで行われたコミットの総数を調べようとしています。どのように私はこれを行うことができます誰もが何か考えがありますか?私のサーバー上でgitosisによってホストされているすべてのreposにコミットされたコミット数をカウントするには
答えて
ls /path/to/repos/ | xargs -I % git --git-dir=/path/to/repos/%/.git rev-list --all 2>/dev/null | wc -l
これはかなりうまく動作します。 grep -v zip
を使用するか、より具体的なfind
クエリを使用して、特定のディレクトリだけを検索することもできます。
更新:rev-list --all
の代わりlog --pretty=oneline
を使用しています。
ありがとう!これはまさに私が探していたものです! – user847083
@manojldsが指摘しているように、 'rev-list --all'は実際より良いでしょう。 –
"検査用リポジトリ"の作成をおすすめします。私はgitolite使用しますが、プロセスは同じのようになります。今
git init --bare all && cd all
ssh [email protected] | grep @W | xargs -i{} git remote add {} [email protected]:{}.git
git fetch --all
あなたが行数を実行して、カウントを得ることができる必要があります:
最初にすべてのリポジトリからのコミットを収集レポを作成
git log --all --format=%h | wc -l
これが役に立ちます。
私は彼がreposの数ではなく、すべてのreposにわたってコミットの総数を探していると思います。 – Andy
誤解されています。更新中。 –
私はgitosisの機能を認識していませんが、gitosisはすべてのリポジトリを1つのディレクトリに保存するので非常に簡単です。
たとえば、デフォルトのgitosisインストール(well、または少なくともmine :)は、リポジトリを〜git/repositoriesに格納します。そのディレクトリへ
移動し、これに似た何かを実行します。
for rep in `find . -maxdepth 1 -mindepth 1 -type d -print`; do
echo $rep;
(cd $rep && git log -pretty=oneline | wc -l);
done
はおそらくすっきりそれを行うことができますが、それは、コミット回数に続くリポジトリを示しています。
コミット時にgrepを実行しないでください。多くのコミットメッセージには 'commit'があります。 gitノートも表示されます。 – manojlds
'git log'はこのようなことを助けるために' --pretty = oneline'のようなparamsをとります。 –
良い考え。それについて知らなかった - かなり= onelineです。私はそれに似たものがあることを知っていましたが、それを見つけることができませんでした。ありがとう、答えを更新しました。 –
のようなコミットの数をカウントする特定の方法があります。
git rev-list --all | wc -l
またはブランチ
git log branch --pretty=oneline | wc -l
あなたは、各レポにそれを使うか、のそれぞれに行くのスクリプトを書くことができるためにはレポは、上記のいずれかを実行し、カウントを得る?
cd /path/to/repos/
ls | xargs -I % git --git-dir=% rev-list --all 2>/dev/null | wc -l
そしてgitoriousサーバーに私が使用
array=($(ls /path/to/repos/))
for i in ${array[@]}; do cd /path/to/repos/$i; ls | xargs -I % git --git-dir=% rev-list --all 2>/dev/null | wc -l; done
これは、すべてのプロジェクトのコミットを表示します、あなたは
新しいバージョンのgit(2.14.1でテスト済み)では、コマンドgit rev-list --count HEAD
が動作し、git rev-list --all | wc -l
と同じ結果が得られます。
- 1. 私のサーバー上のgitosisリポジトリにユーザーがコミットしたすべてのファイルはどこにありますか?
- 2. Gitにコミットされたソースはサーバーに保存されていますか?
- 3. は、どのように私はコミットされていない、対話型リベースとコミットを編集するには?
- 4. コミットによってもたらされた変更を確認するには?
- 5. プッシュされたコミットを削除して古いコミットに戻すにはどうすればよいですか?
- 6. gitlabサーバにコミットされたすべてのリポジトリをプッシュ
- 7. Gitでコミットされたがまだプッシュされていないコンテンツをすべて表示するには?
- 8. どのようにpre-receiveフックでコミットされているすべてのハッシュを取得するには?
- 9. git:filter-branchがすでにコミットされているコミットになるか確認してください。
- 10. Mercurialでコミットされたチェンジセットをコミットされていない変更に変換する
- 11. コミットされたファイルをSvnのリポジトリにコミットした後にまとめて(1回のコミットとして)?
- 12. TortoiseSVNはコミットできません、 "サーバーによって禁止されています"と言います
- 13. アンラップされた接続によってJPAコミットの変更が行われる
- 14. すでにコミットされているgitブランチを削除する
- 15. マージされたコミットに関連するコミットを作成する
- 16. アニメーションイベントはUnity3DのTortoiseSVNによってコミットされていません
- 17. githubでコミットされたコミットをローカルリポジトリに取得するにはどうすればよいですか?
- 18. gitで1つのコミットから別のコミットに変更されたファイルの数を調べるには
- 19. すべてのリベースされたコミットを自動的にリワードする
- 20. Githubのは、diffは表示されません、コミット私は最近、githubの上のレポにコミット作られ、私は、ファイルのいずれかの、違いを見たいと思ったときに、今私が得るすべてはある
- 21. マージコマンドでマージされるコミット数をカウントする
- 22. コミットとコミットの間でgit-diffを使って*すべての空白が変更されないようにする
- 23. gitの既にプッシュされているブランチからすべてのコミットを削除するには?
- 24. データベースにコミットされているデータをロールバックする方法
- 25. ブランチに接続されていないコミットを削除する
- 26. gratchによってカウントされたカウントファイル
- 27. 削除されたすべてのファイルをgitでコミットに追加
- 28. 私のビルドはコミットされるべきですか?
- 29. GitHub上のブランチのすべてのコミットを表示するにはどうすればよいですか?
- 30. すでにコミットされているトランザクションをロールバックするにはどうすればよいですか?
まず、なぜですか?次に、何か試しましたか? – manojlds
Webページに表示するコミットの総数を取得します。私は以下の1つのソリューションを試しましたが、gitユーザーは実際にはsshアクセスを持っていません。 – user847083