如何基于现有Git仓库创建保留完整历史的独立新仓库
纯Git命令创建原仓库独立全历史副本操作步骤
全程操作在独立临时目录完成,不会对原有本地仓库、远端原仓库产生任何修改,最终新仓库为完全独立副本,完整继承原仓库全量提交记录、分支、标签。
第一步:拉取原仓库的裸镜像副本
新建一个和你原有本地工作仓库完全无关的临时目录,在该目录下执行命令拉取原仓库的裸版本:git clone --bare <原仓库地址> temp-mirror-repo.git这里的原仓库地址既可以是原仓库的远端HTTPS/SSH地址,也可以是你本地原有仓库的绝对路径,两种方式都只会读取原仓库内容,不会做任何写入修改。
--bare参数拉取的是不含工作区的纯仓库版本,包含全量提交、分支、标签信息,不会和你原有本地工作仓库产生配置关联。第二步:创建全新的空白远端仓库
在你使用的Git托管平台新建一个空仓库,不要勾选初始化README、开源协议、.gitignore等自动生成文件的选项,记录下这个新空仓库的地址。第三步:推送全量镜像到新仓库
进入刚才拉取的裸仓库目录,执行镜像推送命令,把全量仓库内容同步到新的空仓库:cd temp-mirror-repo.git git push --mirror <新空仓库地址>--mirror参数会将所有本地引用(分支、标签、远程追踪记录等)全量推送到目标仓库,推送完成后新仓库的内容和原仓库完全一致,完整保留所有提交历史。第四步:清理临时文件
推送完成后退出临时裸仓库目录,删除临时文件即可:cd .. rm -rf temp-mirror-repo.git
验证说明
后续你可以正常克隆新仓库到本地使用,新仓库和原仓库没有任何默认的追踪关联,两边的提交、分支修改等操作完全独立,不会互相影响,原仓库的所有内容不会有任何改动。
内容的提问来源于stack exchange,提问作者pasteam
相关产品推荐
相关产品推荐

