![](/img/trans.png)
[英]How do I clone single branch from one repo to another, on every commit?
[英]How do i clone an old commit into a new repo?
我使用git跟踪项目中的更改。 最初的几次提交都是关于设置环境的,包括一堆用于获得裸框架的插件。
如何从现有项目的旧提交之一开始新项目?
您可以使用git archive
:
git archive --format=zip --prefix MyNewProj/ <oldcommit> -o ../basicproject.zip
cd ..
unzip basicproject.zip
cd MyNewProj
git init
这将在commit <oldcommit>
处为所有跟踪的文件(不会被忽略,如二进制文件)创建一个zip存档。 然后,您可以将其解压缩到新项目中。
您可以从任何旧点创建分支:
git checkout -b topic <oldpoint>
请注意,使用zip格式可能会有问题上非常大的回购,这取决于所使用(特别是在Windows)的解压本站软件。
这就是git 2.6(Q3 / Q4 2005)解决的问题:
参见RenéScharfe的commit 88329ca , commit 0f747f9和commit 19ee294 (2015年8月22日)。
建议:Johannes Schauer。
(由Junio C gitster
- gitster
在commit 565f575中合并 ,2015年9月1日)
archive-zip
:支持超过65535个条目通过在通常的“中央目录记录结尾”(仅包含16位字段)之前编写“中央目录记录的zip64结尾”(带有条目数的64位字段)来干净地支持65535个以上的条目。 。
InfoZIP的zip相同。
条目数为65535或更少的存档不受影响。提取所有文件(例如InfoZIP的zip和7-Zip)的程序会忽略该字段,并且可能已经提取了所有文件。
依靠ZIP文件目录来快速显示包含文件列表以模拟到普通目录的软件(例如Windows的内置ZIP功能)只能看到其中一部分文件 。
在这里,这无关紧要,除非提交非常大。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.