Подтвердить что ты не робот

Как узнать, отслеживал ли git файл X

Я пробовал поиск в Google для решения этой проблемы, но еще не нашел его.

Учитывая рабочий каталог с именем '/project', я пытаюсь найти способ сказать, что git когда-либо в истории репозитория отслеживал файл с именем '/project/x/y/fubar'.

Возможно ли это? Похоже на то, что должно иметь ответ уже, но мой google-Fu не удается мне сегодня утром.

Изменить: возможно дублировать в Как узнать, отслеживается ли файл git (по коду выхода оболочки)?

Я не рассматриваю этот вопрос так же, как этот, потому что файл, который я пытаюсь получить информацию, не гарантируется в настоящее время отслеживается git и может не существовать в рабочем каталоге во время вызова. Ответы на этот вопрос, похоже, говорят вам, отслеживает ли файл файл git. Скажите, пожалуйста, если я ошибаюсь, и одно из этих решений приемлемо для моей цели.

4b9b3361

Ответ 1

Простейшим было бы git log --all -- x/y/fubar - если бы файл был там, он бы дал как минимум одну запись в журнале.

Ответ 2

Более приятный подход:

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

Объединился с несколькими другими ответами.

Ответ 3

Вот два полезных псевдонима: 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)