列出 Git 存储库中存在的所有文件

你有一个干净的方法来列出所有的文件曾经存在于指定的分支?

27340 次浏览

你可以运行 git-log --name-status,它会响应类似这样的东西:

commit afdbbaf52ab24ef7ce1daaf75f3aaf18c4d2fee0
Author: Your Name <your@email.com>
Date:   Tue Aug 12 13:28:34 2008 -0700


Added test file.


A       test

然后添加解压缩文件:

git-log --name-status | sed -ne 's/^A[^u]//p' | sort -u

这是 Strager 的 解决方案的一个简化版:

git log --pretty=format: --name-status | cut -f2- | sort -u

编辑: 感谢 Jakub 在评论中多教了我一些东西,这个版本有一个更短的管道,并且给了 git 更多的机会去做正确的事情。

git log --pretty=format: --name-only --diff-filter=A | sort -u

这样做是正确的,可以检查 回购中是否存在文件名,而不仅仅是当前分支上的文件名。

git log --all --pretty=format: --name-only --diff-filter=A | sort - | grep fubar

这里有两个有用的别名: FindFileff和 FindFilewithCopies ffc:

# Find if one file ever had into repository
ff = "!git log --pretty=format: --name-status --all -M -B | sort -u | grep $1   #"
# The same as above but showing copied files
ffc = "!git log --pretty=format: --name-status --all -C -M -B | sort -u | grep $1 #"

您可以获得有关文件名和操作的信息。

使用范例:

$ git ff create
A       database/migrations/2014_10_12_000000_create_users_table.php
A       database/migrations/2014_10_12_100000_create_password_resets_table.php
A       database/migrations/2015_05_11_200932_create_boletin_table.php
A       database/migrations/2015_05_15_133500_create_usuarios_table.php
D       database/migrations/2015_05_12_000000_create_users_table.php
M       database/migrations/2015_05_11_200932_create_boletin_table.php
R051    database/migrations/2014_10_12_000000_create_users_table.php    database/migrations/2015_05_12_000000_create_users_table.php


$ git ffc create
A       database/migrations/2014_10_12_000000_create_users_table.php
A       database/migrations/2014_10_12_100000_create_password_resets_table.php
A       database/migrations/2015_05_11_200932_create_boletin_table.php
A       database/migrations/2015_05_15_133500_create_usuarios_table.php
C052    database/migrations/2014_10_12_000000_create_users_table.php    database/migrations/2015_05_11_210246_create_boletin_nosend_table.php
D       database/migrations/2015_05_12_000000_create_users_table.php
M       database/migrations/2015_05_11_200932_create_boletin_table.php
R051    database/migrations/2014_10_12_000000_create_users_table.php    database/migrations/2015_05_12_000000_create_users_table.php