Вопрос:
С помощью командной строки git, как я могу заставить git показать список файлов, которые отслеживаются в репозитории?
Лучший ответ:
Если вы хотите перечислить все файлы, которые в настоящее время отслеживаются в master ветки, вы можете использовать эту команду:
git ls-tree -r master —name-only
Если вам нужен список файлов, которые когда-либо существовали (т.е. Включая удаленные файлы):
git log —pretty=format: —name-only —diff-filter=A | sort — | sed ‘/^$/d’ Ответ №1
Файлы, управляемые git, показаны git ls-files. Проверьте его страницу руководства.
Ответ №2
Принятый ответ показывает только файлы в текущем дереве каталогов. Чтобы показать все отслеженные файлы, которые были зафиксированы (в текущей ветки), используйте
git ls-tree —full-tree —name-only -r HEAD
- —full-tree заставляет команду выполняться так, как если бы вы находились в корневом каталоге хранилища.
- -r возвращается в подкаталоги. В сочетании с —full-tree это дает вам все зафиксированные, отслеживаемые файлы.
- —name-only удаляет информацию SHA/разрешения для случаев, когда вам просто нужны пути к файлам.
- HEAD указывает, для какой ветки вы хотите получить список отслеживаемых, зафиксированных файлов. Вы можете изменить это на master или любое другое имя ветки, но HEAD – это коммит, который вы уже извлекли.
Это метод из принятого ответа на дубликат вопроса qaru.site/questions/2979/….
Ответ №3
Возможно, вы захотите получить цветной вывод с этим.
Я использую этот однострочный список для отслеживания отслеживаемых файлов и каталогов в текущем каталоге текущей ветки:
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)»