如何显示 Git 存储库中特定作者更改的文件列表?

发布于 2025-01-20 10:16:45 字数 804 浏览 0 评论 0原文

如何显示 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

那么,谁可以帮助我?

How to show changed files by a specific author in a Git repository?

When I use this command git log --numstat --pretty=tformat:'%an',

git bash will group files by the author, like this:

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

but I want to get result like this: (author in every line head posistion)

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

so, who can help me?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

会傲 2025-01-27 10:16:45

感谢用户14967413兄弟为这个问题提供了方法。

我还有另一种方法,就像这样:

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
    }
}'

我学了两个小时的awk语法是收获。

Thanks for providing way for this question, user14967413 brother.

And I have an other way to do that, like this:

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
    }
}'

It is harvest that I have learned awk syntax for 2 hours.

甜味超标? 2025-01-27 10:16:45

可以通过一些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

It could be done with some bash scripting:

#!/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
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文