如何判断git是否曾跟踪过文件X.

时间:2011-06-28 11:16:08

标签: git

我已经尝试使用谷歌搜索来解决这个问题,但还没找到。

给定一个名为'/ project'的工作目录,我试图找到一种方法来告诉git是否曾在存储库的历史记录中跟踪过一个名为'/project/x/y/fubar'的文件。

这可能吗?这似乎应该有一个答案,但我的谷歌今天早上失败了。

修改:How to tell if a file is git tracked (by shell exit code)?

可能重复

我不认为这个问题和这个问题一样,因为我试图获取信息的文件目前不能保证被git跟踪,并且在调用时可能不存在于工作目录中。这个问题的答案似乎都告诉你文件是否正由git跟踪当前。请告诉我,如果我错了,其中一个解决方案可以接受我的目标。

3 个答案:

答案 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