到目前为止,作为项目中唯一的人,我一直在复制/粘贴我的项目文件夹并将它们(Ver1,Ver2,Ver3等)重命名为版本控制方案。 现在我想切换到Git。
这就是我所做的:
我初始化了一个.git
文件夹,并将第一个版本添加到Git存储库中。
然后我将所有其他版本作为提交添加到git存储库并标记它们。
所以现在我拥有master分支中的所有版本和标签。
我的问题是:
我怎么能(我不知道签出是否是正确的词)从Git存储库中获取任何版本并将其放在任意文件夹中而不切换分支(或Git可能认为它必须做的任何其他操作)?只是简单地将一个版本(任何版本)从Git复制到一个文件夹而没有Git存储库和文件夹之间的任何连接?
答案 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存储完整存储库的快照。