С помощью командной строки 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)"