Список файлов в локальном git-репо?

347

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

Теперь я хочу иметь возможность просматривать файлы и каталоги, которые я загрузил на свой сервер, но я не знаю как?

Я понимаю, что Git использует какую-то особую файловую иерархию и что я не могу просто перечислить свои файлы, верно?

Но как мне сделать, чтобы перечислить их и просмотреть мои файлы?

Даниэль Холм
источник

Ответы:

568

Эта команда:

git ls-tree --full-tree -r --name-only HEAD

перечисляет все уже зафиксированные файлы, отслеживаемые вашим git-репо.

karlphillip
источник
338

Попробуйте эту команду:

git ls-files 

В этом списке перечислены все файлы в хранилище, включая те, которые только подготовлены, но еще не зафиксированы.

http://www.kernel.org/pub/software/scm/git/docs/git-ls-files.html

amadillu
источник
3
Тот же вывод, что и в ответе выше, но с --name-only (Short format). Хороший фарфор.
Рон Е
21
Следует отметить одну вещь: принятый ответ работает на голом репо, но этот ответ - нет.
Требор Руд
1
Эта команда Git делает вывод намного чище и идеально подходит, если вы просто хотите, чтобы список файлов отслеживался Git.
Май
Есть ли способ перечислить только Direcotries .. что-то вроде git ls-directories ?
Рамеш Парик
12
Предупреждение: если вы находитесь в подкаталоге, в нем отображаются только файлы под этим деревом - вопрос гласит «все файлы в хранилище», но это верно только в том случае, если вы находитесь в корне репозитория.
Вим
2

git ls-tree --full-tree -r HEADи git ls-filesвернуть все файлы сразу. Для большого проекта с сотнями или тысячами файлов, и если вас интересует конкретный файл / каталог, вам может быть удобнее исследовать конкретные каталоги. Вы можете сделать это, получив ID / SHA-1 каталога, который вы хотите изучить, а затем использовать git cat-file -p [ID/SHA-1 of directory]. Например:

git cat-file -p 14032aabd85b43a058cfc7025dd4fa9dd325ea97
100644 blob b93a4953fff68df523aa7656497ee339d6026d64    glyphicons-halflings-regular.eot
100644 blob 94fb5490a2ed10b2c69a4a567a4fd2e4f706d841    glyphicons-halflings-regular.svg
100644 blob 1413fc609ab6f21774de0cb7e01360095584f65b    glyphicons-halflings-regular.ttf
100644 blob 9e612858f802245ddcbf59788a0db942224bab35    glyphicons-halflings-regular.woff
100644 blob 64539b54c3751a6d9adb44c8e3a45ba5a73b77f0    glyphicons-halflings-regular.woff2

В приведенном выше примере 14032aabd85b43a058cfc7025dd4fa9dd325ea97это ID / SHA-1 каталога, который я хотел изучить. В этом случае результатом было то, что четыре файла в этом каталоге отслеживались моим репозиторием Git. Если в каталоге есть дополнительные файлы, это означает, что эти дополнительные файлы не отслеживаются. Вы можете добавлять файлы, используя, git add <file>...конечно.

Хайме Монтойя
источник
Вы также можете просто cdперейти в каталог, который вас интересует, и пропустить --full-tree.
Натан