从git commit hash获取文件或文件夹

时间:2012-01-21 07:11:59

标签: git terminal command-line-interface

所以我想说我有一个哈希ccf52ef35d7767c5b0f251542ab79608c50a3a56

如何使用git命令行从提交哈希和文件结构中获取文件的内容。

另外,如果路径是目录而不是文件,如何获取目录列表。我不需要检查,只需要为每个命令使用两个命令。

我知道这是命令: git log [<options>] [<since>..<until>] [[--] <path>...]here is the page

我尝试git log ccf52ef35d7767c5b0f251542ab79608c50a3a56,但刚刚返回通用git log(所有提交)。我甚至不知道如何获取文件的内容,除非可能将其汇总到lscat

编辑:好的,所以我想出了git show --pretty="format:" --name-only a3da8bb。最好的方法是从目录中删除目录并从中获取文件?编辑2:看到答案,谢谢。仍在寻找如何cat文件。

2 个答案:

答案 0 :(得分:4)

你可能想要:

git show --pretty="format:" --name-only <sha1 hash>

它将显示提交中添加/修改/删除的文件。您可以使用--name-only代替--name-status来显示名称和状态(已修改,已添加..)

要获取文件内容,您可以使用:

git show <hash>:file

git cat-file -p <hash>:file

答案 1 :(得分:1)

我明白了。事实上非常简单。

git show hash:path/to/file