Используйте команду Git для вывода списка файлов "удаленного репо" в указанном каталоге c. - PullRequest
1 голос
/ 09 июля 2020

Я хотел бы иметь возможность перечислять файлы в удаленном каталоге Git репозитория c. Много гуглил, но не повезло.

Я пытаюсь использовать Jenkins для выполнения некоторых c «интеграционных тестов», но не всех. Я не хочу запускать все тесты, потому что это отнимает очень много времени (из-за бессмысленной политики компании c).

Я хочу sh заранее удаленно перечислить "файлы тестовой группы" (ie. Прежде, чем я начну сборку Jenkins), поэтому я могу выполнять только те тесты, которые хочу запустить.

1 Ответ

1 голос
/ 09 июля 2020

Вы можете перечислить файлы в конкретном коммите локального репо из каталога root этого репо следующим образом:

Для списка файлов, которые были изменены в фиксация:

git diff-tree --no-commit-id --name-only -r <hash/branch/tag> <file pattern>

Для списка всех файлов, присутствующих в дереве файлов (с изменениями или без них) в данной фиксации:

git ls-tree --name-only -r <hash/branch/tag> <file pattern>

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

Например, чтобы получить все файлы в дереве файлов для удаленной фиксации ветки origin/master, для всех файлов в каталоге myfolder с совпадением с шаблоном *.jpg используйте:

git ls-tree --name-only -r origin/master myfolder/*.jpg

Затем вы можете использовать итоговый список, однако, требуется с помощью дополнительных сценариев.

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