Как узнать, отслеживал ли когда-нибудь git файл X - PullRequest
17 голосов
/ 28 июня 2011

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

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

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

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

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

Ответы [ 3 ]

23 голосов
/ 28 июня 2011

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

7 голосов
/ 23 августа 2012

Более хороший подход:

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

Объединено с парой других ответов.

1 голос
/ 17 мая 2015

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...