在给定时间提取git存储库的快照

Mar*_*ter 3 git

我已经克隆了一个 xorg git 存储库:

git clone git://anonscm.debian.org/pkg-xorg/driver/xserver-xorg-video-intel
Run Code Online (Sandbox Code Playgroud)

我需要在提交 45c09bfe58c37bbf7965af25bdd4fa5c37c0908f 后提取所有文件

我知道如何提取指定版本的一个文件,即

git show 45c09bfe58c37bbf7965af25bdd4fa5c37c0908f:src/intel_driver.h > intel_driver.h
Run Code Online (Sandbox Code Playgroud)

但是如何提取整个结构(所有文件)?

Gil*_*il' 7

要检查特定的提交:

git checkout 45c09bfe58c37bbf7965af25bdd4fa5c37c0908f
Run Code Online (Sandbox Code Playgroud)

如果需要覆盖未提交的文件,这将报告错误。要无条件覆盖文件,请传递-f选项。

要在不影响工作副本的情况下提取提交:

git archive 45c09bfe58c37bbf7965af25bdd4fa5c37c0908f | gzip >../45c09bfe58c37bbf7965af25bdd4fa5c37c0908f.tar.gz
git archive --prefix=45c09bfe58c37bbf7965af25bdd4fa5c37c0908f/ 45c09bfe58c37bbf7965af25bdd4fa5c37c0908f | tar xf - -C ..
Run Code Online (Sandbox Code Playgroud)

git archive 为您提供一个 tar 存档,您可以将其解压缩到其他地方或存储到文件中。