如何从git结帐

时间:2011-03-24 12:00:43

标签: git tags

到目前为止,作为项目中唯一的人,我一直在复制/粘贴我的项目文件夹并将它们(Ver1,Ver2,Ver3等)重命名为版本控制方案。 现在我想切换到Git。

这就是我所做的:
我初始化了一个.git文件夹,并将第一个版本添加到Git存储库中。 然后我将所有其他版本作为提交添加到git存储库并标记它们。 所以现在我拥有master分支中的所有版本和标签。

我的问题是:
我怎么能(我不知道签出是否是正确的词)从Git存储库中获取任何版本并将其放在任意文件夹中而不切换分支(或Git可能认为它必须做的任何其他操作)?只是简单地将一个版本(任何版本)从Git复制到一个文件夹而没有Git存储库和文件夹之间的任何连接?

3 个答案:

答案 0 :(得分:2)

通常直接在正常工作树中检查历史版本(您可以将任何提交签出为“分离的HEAD”/“未命名的分支”)或使用git log间接查看历史记录(尤其是{{1选项),git blame等等。

但是,如果您确实需要完全解压缩旧版本,可以使用git archive命令创建特定提交 1 tar 存档(标签名称,分支名称(您将获得其提示提交)或提交对象ID(即SHA-1哈希值)将用于指定提交)。您可以轻松地将存档管道传输到 tar ,以便随时随地将其解压缩。

从您的存储库目录:

-p

git archive --format=tar branch-or-tag-name-or-commit-id | (mkdir /path/to/destination && cd /path/to/destination && tar xf -) 将始终适用于本地存储库。它还可以通过git archive选项与非本地存储库(或不在当前工作目录中的本地存储库)一起使用;并非所有Git托管服务都可能允许提取档案(他们可能不想花费CPU时间或带宽)。


1 实际上,您可以将--remote与任何tree一起使用(即根目录或任何提交中表示的任何子目录),但它最常用于分支提示,标记和提交。

答案 1 :(得分:1)

做:

git clone (path to your repo)

或者如果您不希望.git元数据执行:

git archive (branch)

答案 2 :(得分:0)

你的问题是:

  

我怎么能(我不知道是否结帐   是正确的词)抓住任何版本   来自GIT存储库并将其放入   没有切换的任意文件夹   分支机构(或任何其他操作GIT   可能认为必须这样做??

您想使用git checkout命令:

git checkout myTag1.2.3 
git checkout asdf81274982shjsks 
git checkout origin/develop

checkout的参数可以是分支,标签或SHA1-hash。

您总是可以获得完整的存储库。你不能检查它的一部分。请记住,git存储完整存储库的快照。