programing

Git, 내 최근 N개 커밋의 댓글 목록 보기

muds 2023. 7. 10. 22:58
반응형

Git, 내 최근 N개 커밋의 댓글 목록 보기

Git에서 내가 마지막으로 한 N개의 커밋의 댓글 목록과 시간을 볼 수 있는 방법이 있습니까?

SO를 확인한 후, 제가 발견한 유일한 관련성은 Git - 그들이 만든 모든 커밋과 블롭을 가져오지만, 그것은 모든 사용자의 모든 커밋을 보여주고, 다른 많은 정보를 출력합니다.

명령줄을 사용하려면 다음을 사용할 수 있습니다.--author=<your name>

예: 최근 5개 커밋을 보려면 다음과 같이 하십시오.

git log -n 5 --author=Salvador

보다 단순한 한 줄 솔루션을 원하는 경우:

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

그리고 다음과 같은 좋은 결과를 얻었습니다.

Terminal output

색상이 지정되고 작성자의 이름이 표시되며 그래프도 표시되며 다른 플래그(예: --author)를 전달하여 필터링을 더욱 강화할 수 있습니다.

사용--author및/또는--committer필터링 옵션git log게다가-n커밋 수를 제한하는 옵션입니다.예:

git log --author='Salvador Dali' -n 10
git log --format="%h %B" --oneline -n 1

이렇게 하면 커밋 ID가 약어로 표시된 최신 깃 로그 주석 블록이 표시됩니다.

git log --format="%H %B" -n 1

이렇게 하면 전체 커밋 ID가 포함된 최신 gitlog 댓글 블록이 표시됩니다.

Git Pretty Format에서 자신만의 포맷을 구축할 수 있습니다.

git log --author="My name" -n 5(참조)man git-log모든 대안에 대해)

최근 N개 커밋의 주석 목록 보기

git log --oneline -10

이전 커밋으로 체크아웃

git ckeckout 3e6bb80

이전 커밋을 체크아웃한 후 최신 커밋으로 돌아가기

git checkout -

마지막 XGit 커밋 메시지만 검색하는 경우 다음 명령을 사용하여 마지막 5개의 커밋 메시지를 새 줄로 구분된 문자열로 제공합니다.

git log -5 --oneline --format=%s | sed 's/^.*: //'

다음과 같은 내용을 출력합니다.

Remove references to Node 8
Move ESLint cache file into node_modules
Update postcss packages
Add TypeScript 4.x as peerDependency to react-scripts
Create FUNDING.yml

git log --max-count=15 --max=" 형식:%C(딤그린) %<(9, 트런치) %ar %C(볼드 마젠타) %h(볼드 마젠타) %<(12,트런치) %an %C(볼드 옐로우) %<(113,트런치) %s" -- 병합 없음

알림...노란색)%<(113,132) 113은 설정을 재정의하지 않고 전체 사용자 지정을 허용하도록 주석을 트리밍하는 길이입니다.

앞서 말한 것처럼 이것은 에일리어스일 수도 있고 파워셸 함수에 싸여 있을 수도 있습니다.

다음은 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 
}

처럼 일하는.less계속할지 묻는 메시지 없이 예쁜 형식으로:

git --no-pager log --decorate=short --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' -n5

잘 작동합니다.

언급URL : https://stackoverflow.com/questions/13542213/git-see-a-list-of-comments-of-my-last-n-commits

반응형