最も準備ができている答えは
git show-branch
より詳細に制御するためにできることは、git log
付録を使用することgit rev-list
です。
git log --left-right --graph --cherry-pick \
--oneline branchname...remote/branchname
これは私の好みの方法であり、次のような結果になります
> | fff6bda remote fix
< | c8903ee local fix
< | 724373c Merge branch 'bla' into bla
|\ \
| < | 2faf547 details
| < | abbdc47 ....
|/ /
< | befc181 some tagged commit
--decorateを含めると、gitk、git-gui、およびgitwebに近いものが得られます。
> | fff6bda remote fix
< | c8903ee local fix
< | 724373c (tag_4) Merge branch 'bla' into bla
|\ \
| < | 2faf547 details
| < | abbdc47 ....
|/ /
< | befc181 (tag_3) some tagged commit
プロのヒント1:便利な使用のために' 'を使用するgit config alias.lr log --long-option1 --long-option2
プロのヒント2:すぐに目を楽にするために''を使用するgit config color.ui auto
すべてのローカルヘッド(すべてのローカルブランチ上)とすべてのリモートコミット(同上ブランチ上)が必要な場合:
git log --decorate --pretty=oneline --all --not --glob=refs/remotes --no-walk
すべての個別の改訂を取得するには、ノーウォークを省略します。この場合、前に示したスイッチを使用することを好みます(--graph --left-right)
マージ
マージを明確に確認したい場合は、-boundaryを含めます
さまざまな高度なクエリ:
結果のフィルタリング
たくさんの狡猾なフィルタリング機能をGitlog
してサポートします。manページを参照してください。rev-list
--after '2001-01-01'
--until 'last week'
--author 'martin'
-E -i --grep='fixes #[0123456789]+'
-S 'new_debug_function'
そして他の多くの。これにより、ほとんど労力をかけずに必要な情報を正確に取得するための十分なレバレッジが得られるはずです。
ローカルに隠されているものは何ですか?
隠し場所にあるがリモートにはないもの(隠し場所はreflogにあり、reflogは(リモートブランチの場合でも)常にローカル履歴を反映しているため、リモートブランチの隠し場所を参照する方法がないことに注意してください[1]):
git log $(git rev-list -g stash) --not --glob=refs/remotes
すべての(その他の)到達不能なコミット...
ノート
スクリプティング
スクリプトの目的で、の使用をgit log
withに置き換えるgit rev-list
と、ハッシュだけが得られます(さらに、script-prrofの堅牢性が向上します)。
[1]リポジトリ間でスタッシュを転送する方法については、以前の回答も参照してください。