有时我想使用Git完成这个简单的操作:
我有一个包含多个提交的git存储库。
现在,如何检出特定提交的所有目录和文件?
我应该在本地克隆仓库,然后对该特定提交执行git checkout吗?
是否有更简单的命令只需将特定提交的所有文件和目录检出到本地目录?我只是要使用这些文件,并不会改变它们等,所以我不需要为检出几个文件并查看它们而创建一个本地存储库。正确吗?
有时我想使用Git完成这个简单的操作:
我有一个包含多个提交的git存储库。
现在,如何检出特定提交的所有目录和文件?
我应该在本地克隆仓库,然后对该特定提交执行git checkout吗?
是否有更简单的命令只需将特定提交的所有文件和目录检出到本地目录?我只是要使用这些文件,并不会改变它们等,所以我不需要为检出几个文件并查看它们而创建一个本地存储库。正确吗?
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
获取其他选项和示例。您也可以使用远程分支名称作为 <tree-ish>
。
希望这能帮到您。
当你有一个仓库时,你就拥有所有文件的所有修订版本可供使用。 首先,使用git log
查找您感兴趣的提交。 然后,一旦您发现您感兴趣的提交方式, 您可以使用 git branch branch_name <您感兴趣的提交>
从该提交处开始创建一个分支。现在,您将拥有一个名为branch_name
的本地分支,并且您可以使用git checkout branch_name
来查看那个时候的情况。
如果您想将您的repo设置为fa4ef34
的状态(即提交状态),请使用{{link1: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
,请按照我回答开头描述的步骤进行操作。