如何将REPO1的main分支代码无历史复制到REPO2的main分支
无历史复制REPO代码到目标仓库的方法
要把REPO1 main分支的当前代码复制到REPO2 main分支,且完全丢弃所有提交历史,直接创建全新初始提交就行,下面是两种实用操作:
方法一:临时目录中转(直观易操作)
- 先把REPO1的main分支单独克隆到本地临时文件夹:
git clone --branch main --single-branch <REPO1地址> temp-repo - 进入临时文件夹,删掉
.git目录彻底清除所有历史:cd temp-repo rm -rf .git - 初始化新仓库,添加所有文件并做初始提交:
git init git add . git commit -m "初始提交:同步REPO1 main分支代码" - 关联REPO2的远程仓库:
git remote add origin <REPO2地址> - 强制推送到REPO2的main分支(注意:这会覆盖REPO2 main分支所有现有内容,确认后再执行):
git push -f origin main
方法二:直接在REPO2本地仓库操作(无需临时目录)
- 先克隆REPO2的main分支到本地:
git clone <REPO2地址> repo2-local cd repo2-local - 拉取REPO1 main分支的最新代码,覆盖当前目录所有文件:
git fetch <REPO1地址> main git checkout FETCH_HEAD -- . - 重置暂存区,创建全新的初始提交:
git rm -rf .git/index git add . git commit --allow-empty -m "初始提交:同步REPO1 main分支代码" - 强制推送到REPO2远程main分支:
git push -f origin main
重要提醒
- 强制推送(
git push -f)会彻底覆盖REPO2 main分支的原有提交记录,执行前一定要确认该分支没有需要保留的内容。 - 私有仓库可以把命令里的HTTPS地址换成对应的SSH地址,效果一样。
内容的提问来源于stack exchange,提问作者Aixi
相关产品推荐
相关产品推荐

