git:列出在一段时间内没有工作的人的名字

时间:2018-02-02 20:23:41

标签: git github

我是git的新用户。 我在我的终端上使用git。 我必须检查一个项目,看看谁是过去六个月或六个月以上不活跃的贡献者。 我尝试了许多命令,但我找不到答案。 所以基本上我需要打印超过6个月没有参与项目贡献的人的姓名 感谢

4 个答案:

答案 0 :(得分:2)

尽可能按照字面意思提出问题,这里有一个BASH脚本,可以获取过去6个月内所有作者的姓名。

#!/bin/bash

since=$(date -d"-6 months" +%Y-%m-%d)

git shortlog -sn | awk '{$1=""; print $0}' > /tmp/herolist

while read author; do
    if [[ $(git log --after=$since --author="$author") == "" ]]; then
        echo $author
    fi
done < /tmp/herolist

编辑以显示过去六个月内 n 承诺的人。

答案 1 :(得分:1)

您会看到某个贡献者在特定日期(过去6个月)之后是否有任何提交:

git log --after="yyyy-mm-dd" --author="email or name"

如果命令结果为空,则没有提交

答案 2 :(得分:1)

更为文字的答案,因为问题是提交者而不是作者。也没有使用临时文件。但仍有改进的余地。

#! /bin/bash

IFS=$'\n'
limit=$(date --date='-6 month' +"%d-%m-%Y")
committers=$(git log --pretty=format:"%cn" | sort -u | uniq -u)
recent_committers=$(git log --pretty=format:"%cn" --after $limit | sort -u | uniq -u)

for i in ${recent_committers[@]}; do
    committers=( "${committers[@]/$i}" )
done

printf -- "%s\n" "${committers[@]}"

答案 3 :(得分:0)

您可以使用漂亮的格式化选项获取所有提交的时间戳和作者:

git log --pretty="%at:%an:%ae"

您可以使用%at并获取unixtime,然后使用它来排序和“唯一”&#39;数据 - 如果您希望查看人类可读日期,则可以使用%ai%aD