我不时想用Git做这个简单的事情:
我有一个包含多个提交的git存储库。
现在我如何查看特定提交的所有目录和文件?
我应该在本地克隆repo然后为该特定提交执行git checkout吗?
是否有一个更简单的命令只检查特定提交到本地目录的所有文件和目录?我只是要使用这些文件,我不会改变它们等等,所以我不需要创建一个本地存储库来检查几个文件并查看它们。正确吗?
答案 0 :(得分:3)
我认为您正在寻找git archive
。也许是这样的:
$ git archive --format=tar --prefix=my-tag-or-commit-id/ my-tag-or-commit-id | (cd /path/to/repo/checkout && tar xf -)
检查git help archive
以了解其他选项和示例。您也可以使用远程分支名称。
我希望这会有所帮助。
答案 1 :(得分:1)
如果您想将您的回购设置为fa4ef34
的状态(即提交),请使用git checkout
:
git checkout fa4ef34
这会使您的工作副本处于fa4ef34
状态。
如果您想再次查看master
,请执行
git checkout master
但是,如果您对远程回购的某些提交感兴趣,则必须执行此操作。
首先,初始化本地仓库:
git init myrepo
cd myrepo
现在,您在新创建的本地回购中。要获得远程仓库(例如蓝牙数据包分析器)的提交,您必须执行以下操作:
git remote add bluez_hcidump git://git.kernel.org/pub/scm/bluetooth/bluez-hcidump.git
git fetch bluez_hcidump
现在,您的回购了解bluez_hcidump
回购的所有信息。如果要访问属于该存储库的提交fa4ef34
,请执行我的答案开头所述的步骤。
答案 2 :(得分:1)
如果您有存储库,则可以获得所有可用文件的所有修订版本。首先,您使用git log
找到您感兴趣的提交。然后,一旦找到您感兴趣的some way of referring to the commmit,就可以使用git branch branch_name <the commit you're interested in>
从该提交开始剪切分支。现在,您将拥有一个本地分支(在该提交时称为branch_name
,您可以git checkout branch_name
查看当时的情况。