2

我使用 git 来跟踪项目中的更改。前几个提交都是关于设置环境并包含一堆插件以获得一个裸框架。

我如何从现有项目中的一个旧提交开始一个新项目?

4

3 回答 3

1

你可以使用git archive

git archive --format=zip --prefix MyNewProj/ <oldcommit> -o ../basicproject.zip
cd ..
unzip basicproject.zip
cd MyNewProj
git init

这将在 commit 处创建所有跟踪文件(不是任何被忽略的文件,如二进制文件)的 zip 存档<oldcommit>。然后您可以将其解压缩到一个新项目中。

于 2013-06-12T05:07:51.960 回答
0

您可以从任何旧点创建分支:

git checkout -b topic <oldpoint>
于 2013-06-12T03:31:00.787 回答
0

请注意,在非常大的 repo 上使用 zip 格式可能会出现问题,具体取决于所使用的解压缩软件(尤其是在 Windows 上)。
这就是 git 2.6 (Q3/Q4 2005) 解决的问题:

请参阅René Scharfe 的commit 88329cacommit 0f747f9commit 19ee294(2015 年 8 月 22 日)。
推荐人:Johannes Schauer。
(由Junio C Hamano 合并 -- gitster--提交 565f575中,2015 年 9 月 1 日)

archive-zip: 支持超过 65535 个条目

通过在通常的“中央目录记录结尾”(仅包含 16 位字段)之前写入“中央目录记录的 zip64 结尾”(条目数为 64 位字段),干净地支持超过 65535 个条目.
InfoZIP 的 zip 也是如此。
条目数为 65535 或更少的档案不受影响。

提取所有文件(如 InfoZIP 的 zip 和 7-Zip)的程序会忽略该字段,并且已经可以提取所有文件。
依赖 ZIP 文件目录快速显示包含文件列表以模拟到普通目录的软件,如 Windows 的内置 ZIP 功能,只能看到包含文件的子集

Windows从 Vista 开始支持 ZIP64

在这里,这无关紧要,除非提交非常大。

于 2015-09-02T09:38:07.787 回答