スクリプトでこれを行う必要があります。ありがとうございました。
4 に答える
次のコマンドを (エイリアスとして) 使用して、リモート リポジトリにプッシュされていないすべてのローカル コミットを一覧表示します。
log --oneline --decorate=short --graph --all --branches --not --remotes
これは、スクリプトで使用するために変更する必要があります。おそらく、同じことを行う配管コマンドが存在しますが、便利だと思います。
キーは、最後のいくつかの引数にあります。
--all
すべての参照が含まれrefs/
ます。現在のブランチのコミットのみが必要な場合は、これが必要ない場合があります。--branches
すべての参照が含まれますrefs/heads
-- 現在の場合はオフのままにするか、ブランチを明示的に指定してコミットのリストを制限します。--not --remotes
魔法が含まれています-リストされているコミットがどれも含まれていないことを確認しrefs/remotes
ます。
編集>配管コマンドにも同様 の引数があるようgit rev-list ...
ですが、同じように機能するかどうかをテストしていません。配管コマンドはスクリプト作成に推奨されるため、参照用のマンページを参照してください。
お役に立てれば。
状況がこのような場合:
/--a--b--c myBranch [local branch]
/
----x <- [closest common ancestor]
\
\--e--f origin/myBranch [tracked remote]
git status
メッセージが表示されますmyBranch..origin/myBranch [ahead 3, behind 2]
-ahead 3
ローカルブランチが最も近い共通の祖先より3コミット進んでいることをbehind 2
意味し、リモートブランチが最も近い共通の祖先より2コミット進んでいることを意味しますgit log origin/myBranch..myBranch
コミットに関するログを表示しますa-b-c
- 2 つのブランチの共通の祖先からmyBranch
git log myBranch..origin/myBranch
コミットに関するログを表示しますe-f
- 2 つのブランチの共通の祖先からorigin/myBranch
これらのコマンドには、次のような任意のオプションを追加できます。git log --oneline --decorate origin/myBranch..myBranch
git status
現在のブランチが追跡されたブランチのどれだけ後ろにあるかを示します。これをスクリプトで実行し、出力を解析できます。情報をもう少し直接提供する配管コマンドもあるかもしれません。
「git fetch」コマンドを使用して最新の変更情報をプルできます。追跡されたブランチで「 git status」を実行すると、サーバーにプッシュされていないコミットの数または現在のブランチがどれくらい離れているかが表示されます。後ろに。
fetchコマンドを使用しても、ローカル ブランチの変更は適用されません。このため、'git merge origin/branch_name'を使用してマージする必要があります。