关键词:git 仓库迁移
如果你想迁移仓库并保留原始仓库的所有提交历史、分支和标签,你可以使用以下步骤:
方法一:使用 git clone
和 git push
-
在仓库 B 中创建新的仓库。
-
在本地克隆仓库 A:
git clone --mirror <仓库 A URL>
cd <仓库 A 目录>
使用 --mirror
选项克隆仓库会保留所有分支、标签和提交历史。
- 修改远程仓库地址为仓库 B:
git remote set-url --push origin <仓库 B URL>
- 推送到仓库 B:
git push --mirror
方法二:使用 git bundle
- 在仓库 A 中创建 bundle 文件:
git bundle create repoA.bundle --all
-
将
repoA.bundle
文件传输到仓库 B 所在位置。 -
在仓库 B 中克隆:
git clone repoA.bundle <仓库 B 目录>
这两种方法都会保留所有分支、标签和提交历史。选择哪种方法取决于你的具体需求和迁移环境。
注意:
- 使用
--mirror
或--all
选项在git clone
或git bundle
中时,会将所有的分支和标签复制到目标仓库。 - 在执行之前,请确保仓库 B 是空的或者是一个你可以覆盖的目标仓库,因为这些操作会覆盖目标仓库的内容。
- 如果仓库 A 中包含子模块,你可能需要额外处理子模块的迁移。