是否有git命令显示由谁提交/编辑的文件?
是否有git命令显示由谁提交/编辑的文件 输出应如下所示:是否有git命令显示由谁提交/编辑的文件?,git,Git,是否有git命令显示由谁提交/编辑的文件 输出应如下所示: FileName AuthorName fileA user1 user2 fileB user 3 fileC user1 您必须使用自己的git log-pretty=format选项 在-pretty中,您可以设置颜色并选择要显示的任何内容 在您的情况下,您希望显示作者-选择以下任一选项: %aX-根据您的需要选择 格式: format:format允许您指定要显示的信息。它的工作原理有点像printf格式,但值得注意的例
FileName AuthorName
fileA user1 user2
fileB user 3
fileC user1
您必须使用自己的git log-pretty=format选项 在-pretty中,您可以设置颜色并选择要显示的任何内容 在您的情况下,您希望显示作者-选择以下任一选项: %aX-根据您的需要选择 格式: format:format允许您指定要显示的信息。它的工作原理有点像printf格式,但值得注意的例外是,您得到的换行符是%n,而不是\n 例如,格式:%h的作者是%an,%ar%n标题是>>%s 我不认为用一个git命令就可以实现这一点 在sh、bash或zsh中,可以执行以下操作: git ls files-z | xargs-null-L1-I%sh-c printf%'';git注释-p%| sed-nr'/^author/{s/^author.*/\1/;p}'| sort | uniq | awk'{printf\$0\\}END{print\\} 或者,更具可读性:创建脚本文件print_file_和_its_authors.sh: !/垃圾箱/垃圾箱 printf$1''输出文件名,不附加换行符。 输出文件作者和换行符: git注释-p$1\ |sed-nr'/^author/{s/^author./\1/;p}\ |排序| uniq\ |awk'{printf$0}END{print}' 然后做: chmod u+x print_file_和_its_authors.sh git ls files-z | xargs-null-L1./print_file_和_its_authors.sh
如果您知道特定的一个或多个文件,可以对每个文件使用git log-pretty=%an-some_file | sort-u列出编辑此文件的作者。至于您期望的输出格式,您可以采取进一步的措施。此命令列出当前头部的所有文件,包括已删除的文件及其编辑器
git log --pretty="/ %h" --name-only | grep -v ^$| grep -v ^/ | sort -u | while read line
do
authors=$(git log --pretty=%an -- "$line" | sort -u)
echo $line,$authors
done
git log-pretty=/%h-name only | grep-v^$| grep-v^/| sort-u部分用于查找所有文件,包括已删除的文件。我想一定有更简单的方法。git-log可以做到,谷歌是最好的选择rest@EngineerDollerygit日志的输出非常混乱。是否有一种不进行文件处理的方式提取信息?据我所知,您希望收集提交者或作者的问题?或者两者都有?在整个回购历史中,回购协议中每个文件的名称,对吗?或者,可能只是为了收集实际作者/提交人,即在当前文件状态下至少创建了一行的作者/提交人?编辑问题。希望更清楚。你的第一个假设是正确的。
git log --pretty="/ %h" --name-only | grep -v ^$| grep -v ^/ | sort -u | while read line
do
authors=$(git log --pretty=%an -- "$line" | sort -u)
echo $line,$authors
done