【发布时间】:2009-02-12 21:23:43
【问题描述】:
您是否有一种简洁的方法来列出指定分支中曾经存在的所有文件?
【问题讨论】:
-
“曾经存在过”?它是否包括几个月前提交版本中存在的文件,并且它们可能会在当前提交版本中被删除?
标签: git
您是否有一种简洁的方法来列出指定分支中曾经存在的所有文件?
【问题讨论】:
标签: git
这是 Strager 的solution 的简化版本:
git log --pretty=format: --name-status | cut -f2- | sort -u
编辑:感谢 Jakub 在 cmets 中教给我更多知识,这个版本的管道更短,让 git 有更多机会把事情做好。
git log --pretty=format: --name-only --diff-filter=A | sort -u
【讨论】:
--all 是您需要的东西,如果您有多个孤立的小费。例如,一个 repo 中有多个单独的历史记录。
--diff-filter=A 忽略通过复制现有文件创建的文件,因此添加它可能并非总是是您想要的。
这对于检查文件名是否存在于 repo 中是正确的,而不仅仅是在当前分支上。
git log --all --pretty=format: --name-only --diff-filter=A | sort - | grep fubar
【讨论】:
您可以运行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
【讨论】:
这里有两个有用的别名:FindFile ff 和 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
【讨论】: