我已经尝试使用谷歌搜索来解决这个问题,但还没找到。
给定一个名为'/ project'的工作目录,我试图找到一种方法来告诉git是否曾在存储库的历史记录中跟踪过一个名为'/project/x/y/fubar'的文件。
这可能吗?这似乎应该有一个答案,但我的谷歌今天早上失败了。
修改:How to tell if a file is git tracked (by shell exit code)?
可能重复我不认为这个问题和这个问题一样,因为我试图获取信息的文件目前不能保证被git跟踪,并且在调用时可能不存在于工作目录中。这个问题的答案似乎都告诉你文件是否正由git跟踪当前。请告诉我,如果我错了,其中一个解决方案可以接受我的目标。
答案 0 :(得分:20)
最简单的是git log --all -- x/y/fubar
- 如果文件在那里,它将至少提供一个日志条目。
答案 1 :(得分:7)
更好的方法是:
git log --all --pretty=format: --name-only --diff-filter=A | sort - | grep fubar
从其他几个答案中合并。
答案 2 :(得分:1)
以下是两个有用的别名: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
(可以复制自:List all the files that ever existed in a Git repository)