个人总结出来的git仓库迁移方案

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 拉一下原仓库

你可能感兴趣的:(git,github)