簡體   English   中英

如何顯示 Git 存儲庫中特定作者更改的文件列表?

[英]How to show changed file list by a specific author in a Git repository?

如何顯示 Git 存儲庫中特定作者更改的文件?

當我使用此命令git log --numstat --pretty=tformat:'%an'時,

git bash 將按作者對文件進行分組,如下所示:

WoJiaoChaDi-YSS
16      6       AHKScriptManager/scripts/AutoInput/HotKeyString.ini
1       1       AHKScriptManager/scripts/RemindMe/RemindConfig.ini
21      0       OneQuick.Ext.ahk

WoJiaoChaDi-PC
1       1       AHKScriptManager/scripts/AutoCapture/config.ini

但我想得到這樣的結果:(作者在每一行頭位置)

WoJiaoChaDi-YSS      16      6       AHKScriptManager/scripts/AutoInput/HotKeyString.ini
WoJiaoChaDi-YSS      1       1       AHKScriptManager/scripts/RemindMe/RemindConfig.ini
WoJiaoChaDi-YSS      21      0       OneQuick.Ext.ahk

WoJiaoChaDi-PC       1       1       AHKScriptManager/scripts/AutoCapture/config.ini

那么,誰能幫幫我?

感謝 user14967413 兄為這個問題提供方法。

我還有另一種方法可以做到這一點,就像這樣:

git log --numstat --pretty=format:'%an' | awk '{x=$0;tmp=$1""$2;
    if(tmp!~/^[0-9]+$/ && tmp!~/\-\-/){
        name=$0
    } else {
        OFS="\t"
        print name, $0
    }
}'

學習了2小時awk語法是個收獲。

它可以通過一些 bash 腳本來完成:

#!/bin/bash

git log --pretty=tformat:'%H;%an' | while IFS=';' read COMMIT AUTHOR; do
  git log --max-count=1 --numstat --pretty=tformat:'' "$COMMIT" | sed "s/^\(.\)/$AUTHOR\t\1/"
  printf "\n"
done

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM