スクリプトでこれを行う必要があります。ありがとうございました。
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 つのブランチの共通の祖先からmyBranchgit 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'を使用してマージする必要があります。