列出本地git仓库中的文件?

Dan*_*olm 325 git

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

现在我希望能够浏览我上传到服务器的文件和目录,但我不知道怎么做?

我知道Git使用某种特殊的文件层次结构而我无法列出我的文件,对吧?

但是如何列出它们并浏览我的文件呢?

kar*_*lip 535

这个命令:

git ls-tree --full-tree -r --name-only HEAD
Run Code Online (Sandbox Code Playgroud)

列出git repo正在跟踪的所有已提交文件.

  • `git show HEAD:path/to/the/file/you/want.txt` (10认同)
  • 这是***通用答案***,因为它适用于`git`的所有*领域*:**存储库**,**索引**和**工作树** [参考](https:/ /stackoverflow.com/a/76797811/22595851)。这使得这是一个很好的答案......但我的天哪 - 三 (3) 个选项来获取文件列表?! (2认同)

ama*_*llu 324

试试这个命令:

git ls-files 
Run Code Online (Sandbox Code Playgroud)

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

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

  • 有一点需要注意:接受的答案适用于裸机,但这个答案却没有. (18认同)
  • **警告:**如果你在一个子目录中,它只列出该树下的文件 - 问题说明"存储库中的所有文件",但只有当你在repo的根目录时才会这样. (11认同)
  • 与上面的答案输出相同,但使用--name-only(短格式).漂亮的瓷器. (3认同)

Jai*_*oya 5

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
Run Code Online (Sandbox Code Playgroud)

在上面的示例中,14032aabd85b43a058cfc7025dd4fa9dd325ea97是我想要探索的目录的 ID/SHA-1。在本例中,结果是我的 Git 存储库正在跟踪该目录中的四个文件。如果该目录有其他文件,则意味着这些额外文件没有被跟踪。git add <file>...当然,您可以使用添加文件。