git列出上次更改提交的文件和文件夹

时间:2016-08-18 16:10:39

标签: git

我正在寻找一种git ls - 一个输出类似于github repo视图的命令 - 理想情况下会输出如下内容:

$ git ls
uncommitted.txt
folder/          abcd0123  Changed a file in a folder  Sat Aug 13 00:01:06 2016 +0200
oldfile.txt      abcd3210  Changed an old file         Sat Aug 13 00:08:23 2016 +0200

这样的事情是否存在?

2 个答案:

答案 0 :(得分:1)

git ls-tree& git log:

commited_files=$(git ls-tree master --name-only)
uncommited_files=$(git status --porcelain | grep "??" | sed -e 's/^?? //')
list="$commited_files $uncommited_files"
for file in $list; do
  echo $(printf "$file: "; git log --pretty=format:'%h %s %ad' -1 $file);
done

这使得列表成为活动目录中的所有文件和文件夹。如果您想以递归方式执行此操作,则只需执行git ls-tree -r master --name-only

然后遍历列表中的每个文件,并打印该文件的最后一次提交的日志。

答案 1 :(得分:1)

似乎没有任何现成的git ls所以我继续自己做了一个:

https://github.com/jnvsor/git-ls