git仓库全量迁移

本文介绍 Git 仓库的完整镜像迁移。

通过 git 命令,将本地仓库的所有分支、标签和远程引用一次性推送到目标仓库,非常适合进行仓库迁移或备份。

命令构成

1
2
3
4
# 拉取所有远程分支和标签
git fetch origin --prune --tags --force
# 将本地仓库的所有分支、标签和远程引用推送到目标仓库
git push --mirror <remote>

拉取命令

git fetch origin --prune --tags --force 会拉取原远程仓库的所有分支和标签,并且删除本地已经不存在的远程分支。
git fetch --all 相比,它更适合迁移前的准备工作,能保证本地仓库的状态和原远程仓库完全一致。
git pull相比,它不会自动合并分支,避免了不必要的冲突。

推送命令

git push --mirror <remote> 会将本地仓库的所有分支、标签和远程引用推送到目标仓库,实现完整的镜像迁移。

需要注意的是,目标仓库最好是新建的空仓库,否则可能会覆盖已有内容。使用这个命令时要非常小心,确保目标仓库没有重要数据。

适用场景

  • 需要将本地仓库完整迁移到新的远程仓库。
  • 需要备份本地仓库的所有分支和标签。
  • 需要保持本地和远程仓库完全一致。

总之,git push --mirror 是一个非常强大的命令,可以帮助我们快速完成仓库的完整迁移,但也要谨慎使用,避免误操作导致数据丢失。