列出本地git repo中的文件?


347

我正在使用Sparkleshare,它使用Git在笔记本电脑和备份服务器之间同步文件。

现在,我希望能够浏览已上传到服务器的文件和目录,但是我不知道如何?

我知道Git使用某种特殊的文件层次结构,而且我不能只列出我的文件,对吗?

但是我该怎么做才能列出它们并浏览我的文件?

Answers:


567

该命令:

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

列出您的git repo跟踪的所有已提交的文件。


337

试试这个命令:

git ls-files 

这会列出存储库中的所有文件,包括仅已暂存但尚未提交的文件。

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


3
与上面的答案输出相同,但仅--name(短格式)。精美的瓷器。
罗恩E

21
需要注意的一件事:可接受的答案仅适用于裸仓库,但此答案无效。
Trebor Rude 2014年

1
这个Git命令输出的内容更加简洁,如果您只想要Git跟踪的文件列表,它是理想的选择。
mico

有没有办法只列出目录目录..类似git ls-directories
拉梅什·派瑞克

12
警告:如果您在子目录中,则仅列出该树下的文件-该问题指出“存储库中的所有文件”,但是仅当您在存储库的根目录中时,才这样。
wim

2

git ls-tree --full-tree -r HEADgit 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
内森
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.