2011-01-10 15 views
218

私はリモート/マスターブランチを追跡するローカルブランチを持っています。 git-pullgit-logの実行後、ログには、リモートの追跡ブランチと現在のブランチのすべてのコミットが表示されます。しかし、リモートブランチには非常に多くの変更が加えられたので、現在のローカルブランチに対して行われたコミットだけを見る必要があります。git logを実行して特定のブランチの変更のみを表示するにはどうすればよいですか?

特定のブランチに対してのみコミットを表示するために使用するGitコマンドは何でしょうか?

注:

設定情報:

[branch "my-branch"] 
    remote = origin 
    merge = refs/heads/master 

答えて

312

あなたの分岐がmasterのオフに作成されたと仮定すると:

git cherry -v master 

または

git log master.. 

あなたの場合rブランチはorigin/masterで作成され、次にmasterの代わりにorigin/masterと表示されます。

+65

完璧! 'git log --no-merges master..'はまさに私が必要としていたものでした。 –

+6

チェリーピックを考慮していないことに注意してください。 – eis

+1

@HighwayofLife: '--no-merges'は、特定のブランチからのコミットだけを表示しているように見えるかもしれませんが、実際にはマージをもたらさなかったコミットを表示しています。 – rynmrtn

36

用途:

git log --graph --abbrev-commit --decorate --first-parent <branch_name> 

それは(--decorateがよりpolisihingある--abbrevコミット、コース--graphの)のみ対象ブランチのためです。

キーオプションは--first-親である:「最初の親はマージコミットを見る時にコミットフォロー」(https://git-scm.com/docs/git-log

は、それが表示されているからフォークをコミットしないように。

+11

'--first-parent 'がオプションです。作品! – parasrish

+3

branch-nameはどこにありますか?私は歴史だけを見たいブランチですか? 変更が3つしかないブランチでは、これは何百というものを表示しています。 –

+1

'--first-parent 'も私のために働いた!私は 'git log --first-parent $ current_branch_name --no-merges'という別名で終わりました。 @EdRandallに応答して、ブランチ上のコミットと分岐した場所からのコミットを表示します。例: – rachel

0

私が抱えていた問題は、これと似ていると思うが、マスターが歴史のために私の分岐点よりもずっと遠すぎたということだ。 (分岐点への移動時間がかかりすぎる。)いくつかの試行錯誤の後

、これは私が望んでいたおおよそものを私に与えた:

git log --graph --decorate --oneline --all ^master^! 
1

あなたがあなたによって行われているもののみコミットをしたい場合特定のブランチには、以下のコマンドを使用します。

git log branch_name --author='Dyaniyal' 
関連する問題