Как я могу сделать git показать список файлов, которые отслеживаются?

С помощью командной строки git, как я могу заставить git показать список файлов, которые отслеживаются в репозитории?

Ответ 1

Если вы хотите перечислить все файлы, которые в настоящее время отслеживаются в master ветки, вы можете использовать эту команду:

git ls-tree -r master --name-only

Если вам нужен список файлов, которые когда-либо существовали (т.е. Включая удаленные файлы):

git log --pretty=format: --name-only --diff-filter=A | sort - | sed '/^$/d'

Ответ 2

Файлы, управляемые git, показаны git ls-files. Проверьте его страницу руководства.

Ответ 3

Принятый ответ показывает только файлы в текущем дереве каталогов. Чтобы показать все отслеженные файлы, которые были зафиксированы (в текущей ветки), используйте

git ls-tree --full-tree --name-only -r HEAD
  • --full-tree заставляет команду выполняться так, как если бы вы находились в корневом каталоге хранилища.
  • -r возвращается в подкаталоги. В сочетании с --full-tree это дает вам все зафиксированные, отслеживаемые файлы.
  • --name-only удаляет информацию SHA/разрешения для случаев, когда вам просто нужны пути к файлам.
  • HEAD указывает, для какой ветки вы хотите получить список отслеживаемых, зафиксированных файлов. Вы можете изменить это на master или любое другое имя ветки, но HEAD - это коммит, который вы уже извлекли.

Это метод из принятого ответа на дубликат вопроса fooobar.com/questions/2979/....

Ответ 4

Возможно, вы захотите получить цветной вывод с этим.

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

ls --group-directories-first --color=auto -d $(git ls-tree $(git branch | grep \* | cut -d " " -f2) --name-only)

Возможно, вы захотите добавить его как псевдоним:

alias gl='ls --group-directories-first --color=auto -d $(git ls-tree $(git branch | grep \* | cut -d " " -f2) --name-only)'

Если вы хотите рекурсивно перечислять файлы:

'ls' --color=auto -d $(git ls-tree -rt $(git branch | grep \* | cut -d " " -f2) --name-only)

И псевдоним:

alias glr="'ls' --color=auto -d \$(git ls-tree -rt \$(git branch | grep \\* | cut -d \" \" -f2) --name-only)"