7

私は、多数の git リポジトリを管理し、主に Python で記述されたカスタム ビルド システムを使用しています。

すべてのリポジトリの現在のブランチを報告し、「ブランチ」のヘッドが「リモート/オリジン/ブランチ」のヘッドと同じかどうかを報告するコマンドを作成できれば、多くの時間を節約できます。

すべての git リポジトリ内でシェル コマンドを実行するコマンドが既にあります。私が探しているのは、ブランチとリモート/オリジン/ブランチの相対位置に関して、git から単純にフォーマットされた情報を取得する方法です。コミット数の差または単純なブール値のいずれかになります。

この情報を git から取得して、Python 側で行わなければならない解析と処理の量を最小限に抑える方法は何ですか?

4

3 に答える 3

19

十分に新しいバージョンの git がある場合は、次を使用できます。

$ git rev-list --count --left-right branch...origin/branch
2   1

branchコミット数が より進んでいる場合は最初の数字origin/branch、2 番目は遅れているコミット数です。したがって、このブランチにはまだアップストリームにないコミットが 2 つあり、ローカル ブランチにはまだアップストリームにないコミットが 1 つあります。

--count が導入されたときは 1.6 または 1.7 だったと思います。

于 2013-04-16T16:12:16.067 に答える
1

git statusリモート追跡ブランチの前後にあるコミットの数を示します。ただし、最初に git fetch を実行する必要があります。そうしないと、新しいものがリモートに送信されたかどうかを git が認識できないからです。

于 2013-04-16T12:58:38.107 に答える