我使用git来跟踪项目中的更改。前几个提交都是关于设置环境并包含一堆插件来获得一个裸框架。
如何从现有项目的旧提交开始创建一个新项目?
答案 0 :(得分:1)
您可以使用git archive
:
git archive --format=zip --prefix MyNewProj/ <oldcommit> -o ../basicproject.zip
cd ..
unzip basicproject.zip
cd MyNewProj
git init
这将在提交<oldcommit>
创建所有跟踪文件的zip存档(不是任何被忽略的,如二进制文件)。然后你可以将它解压缩到一个新项目中。
答案 1 :(得分:0)
您可以从任何旧点创建分支:
git checkout -b topic <oldpoint>
答案 2 :(得分:0)
请注意,使用zip格式在非常大型仓库中可能会出现问题,具体取决于所使用的解压缩软件(特别是在Windows上)。
这就是git 2.6(Q3 / Q4 2005)所说的:
RenéScharfe,请参阅commit 88329ca,commit 0f747f9,commit 19ee294(2015年8月22日)。
建议:Johannes Schauer
(Junio C Hamano -- gitster
--合并于commit 565f575,2015年9月1日)
archive-zip
:支持超过65535个条目在通常的“中央目录记录结束”之前,通过写一个“中心目录记录的zip64端”(条目数为64位字段)来干净地支持超过65535个条目(其中只包含一个16-比特场) InfoZIP的拉链也是如此 具有65535或更少条目的档案不受影响。
提取所有文件(如InfoZIP的zip和7-Zip)的程序忽略了该字段,并且可以提取所有文件。
依赖ZIP文件目录显示包含列表的软件 文件快速模拟到正常目录,如Windows'内置ZIP功能只看到包含文件的子集。Windows supports ZIP64 since Vista。
在这里,这应该不重要,除非提交是非常大的。