2012-07-30 35 views
3

我试图从git log获取以下内容: 1-回购中每个文件的提交数(两个日期之间) 2-编辑每个文件的贡献者数两个日期) 3-编辑每个文件(两个日期之间)的不同贡献者数量每个文件的git日志提交数

我试过玩git log,但我没有那么成功。我也尝试搜索脚本,但没有运气。任何帮助?

回答

4

(使用普通的Unix工具时)

在回购给定文件编号的提交:

git log --oneline ${filename} | wc -l 

贡献者为给定的文件数:

git log --pretty=format:%ae ${filename} | sort -u | wc -l 

贡献者数对于两个日期之间的给定文件:

git log --since=${date1} --until=${date2} --pretty=format:%ae ${filename} \ 
    | sort -u | wc -l 

现在,这个循环在当前回购的每一个文件,你会做线沿线的东西:

find | grep -v '^\./\.git' | while read filename 
do 
    echo "${filename} has $(git log --oneline ${filename} | wc -l) commits" 
done 
+0

我已经试过前两个命令与几个文件,双方回到同一号码不同的文件!奇怪的!至于文件名,我试过使用src /.../文件名并使用文件夹/.../文件名,因为我已经在src/ – user1564015 2012-07-30 21:15:01

+0

下工作了!谢谢! – user1564015 2012-07-31 01:50:02