155

Git で最後の N 件のコミットのコメントと時刻のリストを表示する方法はありますか?

SO を見た後、私が見つけた唯一の関連するものは Git - get all commits and blobs they createdですが、すべてのユーザーからのすべてのコミットが表示され、他の多くの情報が出力されます。

4

7 に答える 7

255

コマンドラインを使用したい場合は、--author=<your name>

例: 最近の 5 つのコミットを表示するには

git log -n 5 --author=Salvador

よりシンプルな 1 行のソリューションが必要な場合:

git log --oneline -n 5 --author=Salvador

編集して追加

単一行バージョンが気に入った場合は、git logこのようなエイリアスを作成してみてください (これは私が zsh 用に持っているものです)

alias glog="git log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"

今、私はちょうど使用することができます:

glog -n 5

そして、次のような素晴らしい出力が得られます。

端末出力

これは色付けされ、作成者の名前を示し、グラフも表示します。また、他のフラグ (--author など) を渡すこともできます。これにより、さらにフィルターをかけることができます。

于 2012-11-24T14:50:34.703 に答える
12

--authorおよび/または--committerフィルタリング オプションとgit log-nコミット数を制限するオプションを使用します。例えば:

git log --author='Salvador Dali' -n 10
于 2012-11-24T14:47:17.877 に答える
4

git log --author="My name" -n 5(man git-logすべての選択肢については を参照してください)

于 2012-11-24T14:49:04.123 に答える
0

git log --max-count=15 --pretty="format:%C(dim green) %<(9,trunc)%ar %C(bold magenta)%h %C(bold green)%<(12, trunc)%an %C(bold yellow)%<(113,trunc)%s" --マージなし

注意 ...yellow)%<(113,trunc) 113 は、設定を上書きする --oneline なしで完全にカスタマイズできるようにコメントをトリミングする長さです。

言われているように、これはエイリアス化されているか、powershell 関数でラップされている可能性があります。

以下はOPを超えていますが、スレッドに何らかの価値をもたらします。

私は夢中になったことを知っていますが、それが私たちの仕事です。

    function logs() {
<#
    .SYNOPSIS 
     Shows my logs  
    .DESCRIPTION 
     Returns an abreviated list of logs meeting the filtering provided including max returned, committor by case sensitive pattern, branch, local or remote, and a 'my' shourcut to get the callers commits only
    .EXAMPLE
    PS>logs
     
    [ Basic usage gets maximum 15 logs from the origin/<current branch> ]


 origin/master logs

git log origin/master --max-count=15 --pretty="format:%C(dim green) %<(9,trunc)%ar %C(bold magenta)%h %C(bold green)%<(12,trunc)%an %C(bold yellow)%<(113,trunc)%s"

 2 days .. b6e4d0b Joe Johnston Added Posh
 2 days .. 0f1a166 Joe Johnston Updated the profile system
 4 days .. dfd3115 Joe Johnston added .net install and pinned applications. Updated git functions
 6 weeks.. 47bd9e9 Joe Johnston updated functions
 3 month.. 5148f09 Joe Johnston initial add

    .EXAMPLE
    PS>logs -l
     
    [ Usage gets maximum 15 local logs from the <current branch> ]


  logs

git log  --max-count=15 --pretty="format:%C(dim green) %<(9,trunc)%ar %C(bold magenta)%h %C(bold green)%<(12,trunc)%an %C(bold yellow)%<(113,trunc)%s"

 3 hours.. efb36e9 Joe Johnston updated profile to set-execution
 3 hours.. 4355a00 Joe Johnston Merge branch 'master' of https://github.com/xxx
 3 hours.. 84cd380 Joe Johnston updated gitfunctions - added undomerge
 2 days .. b6e4d0b Joe Johnston Added Posh
 2 days .. 0f1a166 Joe Johnston Updated the profile system
 4 days .. dfd3115 Joe Johnston added .net install and pinned applications. Updated git functions
 6 weeks.. 47bd9e9 Joe Johnston updated functions
 3 month.. 5148f09 Joe Johnston initial add

     
    .EXAMPLE
     logs 25

     [ Usage gets maximum 25 logs from the origin/<current branch> ]
    .EXAMPLE
     logs -m -c 20

     [ Usage gets maximum 20 local logs from the <current branch> commited by me]
    .EXAMPLE
     logs -b dev/iOS -c 25 -l -c "Jackson"

     [ Usage gets maximum 20 local logs from the <current branch> commited by the <pattern> Jackson]
#>
    [cmdletbinding()]
    Param(
    [parameter(Mandatory=$false,ValueFromPipeline)]
    [Alias('c')]
        [int]$Count = 15,
    [parameter(Mandatory=$false,ValueFromPipeline)]
    [Alias('b')]
        [string]$Branch = "Current",
    [parameter(Mandatory=$false,ValueFromPipeline)]
    [Alias('u')]
    [Alias('user')]
        [string]$Committer = "",
    [parameter(Mandatory=$false,ValueFromPipeline)]
    [Alias('m')]
    [Alias('me')]
    [Alias('onlyme')]
        [switch]$My = $false,
    [parameter(Mandatory=$false,ValueFromPipeline)]
    [Alias('g')]
        [switch]$Graph = $false,
    [parameter(Mandatory=$false,ValueFromPipeline)]

    [Alias('sm')]
    [Alias('merge')]
        [switch]$ShowMerges = $false,
    [parameter(Mandatory=$false,ValueFromPipeline)]

    [Alias('r')]
        [switch]$Remote = $false
    )
    $merge = '--no-merges';
    if ($ShowMerges) {
        $merge = '';
    }
    $Pretty = "--pretty=`"format:%C(dim green) %<(9,trunc)%ar %C(bold magenta)%h %C(bold green)%<(12,trunc)%an %C(bold yellow)%<(113,trunc)%s`"";
    #git config --global format.pretty $Pretty 
    if ($Branch -eq "Current") { 
        $Branch = git symbolic-ref --short HEAD; 
        write-host "************************************************";
        } else { 
        write-host "================================================";
        }

    if ($Remote -eq $true) { $Where = "origin/$Branch"; }
    if ($Graph -eq $true) { $GraphTag = "--graph"; }
    
     if([string]::IsNullOrEmpty($Committer) -eq $false) {
        $Who = $Committer;
        $Committer = "--committer=" + $Committer;
        write-host $Who
     }

    if ($My -eq $true) { 
        $me = git config user.name;
        $Committer = "--committer=`"$me`"";
        $Who = "**MY**";
    }

    write-host "$Who $Where logs" -foregroundcolor "Red";
    $commandOut = "git log $Where $GraphTag --max-count=$Count $Pretty $Committer $GraphTag $merge";
    write-Verbose $commandOut;
    write-host;

    git log $Where --max-count=$Count $Pretty $Committer $GraphTag $merge  
    write-host 
}
于 2021-10-08T19:02:28.203 に答える