git仓库迁移方案
要求:所有远程分支和提交记录都要迁移
情况1: 单人项目
步骤:
1、git clone --bare 原仓库 (从原地址克隆一份裸版本库)
2、git push --mirror 新仓库 (然后已镜像的方式迁移到新的git仓库中)
情况2:多人协作项目
步骤:
1、git clone --bare 原仓库 .git (从原地址单独克隆一份裸版本库的.git文件)
2、git config --unset core.bare (解除core.bare模式)
3、git reset --hard (恢复所有文件,拉取所有远程分支到本地)
4、脚本修改账户邮箱和提交邮箱
# !/bin/sh
git filter-branch --env-filter '
CORRECT_EMAIL="[email protected]"
export GIT_COMMITTER_EMAIL="$CORRECT_EMAIL"
export GIT_AUTHOR_EMAIL="$CORRECT_EMAIL"
' --tag-name-filter cat -- --branches --tags
5、更改origin的url为新仓库地址
可以直接更改.git目录下的CONFIG文件的origin字段值,或者
git remote rename origin old_origin (更改原origin名字)
git remote add origin 新仓库地址 (设置新origin地址)
6、 git push -u -f --all
git push -u -f --tags
ps:如果含有lfs文件,先git lfs fetch --all 拉一下原仓库