Ответ 1
Простейшим было бы git log --all -- x/y/fubar
- если бы файл был там, он бы дал как минимум одну запись в журнале.
Я пробовал поиск в Google для решения этой проблемы, но еще не нашел его.
Учитывая рабочий каталог с именем '/project', я пытаюсь найти способ сказать, что git когда-либо в истории репозитория отслеживал файл с именем '/project/x/y/fubar'.
Возможно ли это? Похоже на то, что должно иметь ответ уже, но мой google-Fu не удается мне сегодня утром.
Изменить: возможно дублировать в Как узнать, отслеживается ли файл git (по коду выхода оболочки)?
Я не рассматриваю этот вопрос так же, как этот, потому что файл, который я пытаюсь получить информацию, не гарантируется в настоящее время отслеживается git и может не существовать в рабочем каталоге во время вызова. Ответы на этот вопрос, похоже, говорят вам, отслеживает ли файл файл git. Скажите, пожалуйста, если я ошибаюсь, и одно из этих решений приемлемо для моей цели.
Простейшим было бы git log --all -- x/y/fubar
- если бы файл был там, он бы дал как минимум одну запись в журнале.
Более приятный подход:
git log --all --pretty=format: --name-only --diff-filter=A | sort - | grep fubar
Объединился с несколькими другими ответами.
Вот два полезных псевдонима: 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
(Положительный дубликат: Список всех файлов, которые когда-либо существовали в репозитории Git)