Ответ 1
Эта команда:
git ls-tree --full-tree -r --name-only HEAD
перечисляет все уже зафиксированные файлы, отслеживаемые вашим git-репо.
Я использую Sparkleshare, который использует Git для синхронизации файлов между моим ноутбуком и сервером резервного копирования.
Теперь я хочу иметь возможность просматривать файлы и каталоги, которые я загрузил на свой сервер, но я не знаю, как?
Я понимаю, что Git использует какую-то особую файловую иерархию и что я не могу просто перечислить свои файлы, верно?
Но как мне сделать, чтобы перечислить их и просмотреть мои файлы?
Эта команда:
git ls-tree --full-tree -r --name-only HEAD
перечисляет все уже зафиксированные файлы, отслеживаемые вашим git-репо.
Попробуйте выполнить следующую команду:
git ls-files
Здесь перечислены все файлы в репозитории, в том числе те, которые только поэтапно, но еще не выполнены.
http://www.kernel.org/pub/software/scm/git/docs/git-ls-files.html
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>...
конечно.