目录
1、背景
今天我在Github新建了一个组织,想将之前在自己仓库里面的项目迁移过去,但是怎样迁移呢?
1.1解决办法
$ git clone --mirror http://域名/分组/仓库名称.git
$ cd 仓库名称.git
$ git push --mirror http://新域名/新分组/新仓库名称.git
// 说明
// 1、克隆整个旧代码库 –mirro不只是将 源本地分支映射到目标本地分支,实际上映射了所有的引用refs(包括remote-tracking分支,注释等)并且建立指定性引用refspec 配置,即是说通过这次git远程更新,目标仓库的所有引用refs都会被覆盖
// 2、切换目录
// 3、提交代码库到新服务器地址,注意需要新代码库需要提前创建
1.2迁移成功
$ git push --mirror git@github.com:xxxxxxxxxxx.git
Enumerating objects: 29760, done.
Counting objects: 100% (29760/29760), done.
Delta compression using up to 8 threads
Compressing objects: 100% (19232/19232), done.
Writing objects: 100% (29760/29760), 38.74 MiB | 1.29 MiB/s, done.
Total 29760 (delta 9000), reused 29760 (delta 9000)
remote: Resolving deltas: 100% (9000/9000), done.
To github.com:xxxxxxxxxxxx.git
+ 0xxxxxxxx58b3 master -> master (forced update)
* [new branch] dev -> dev
* [new tag] v1.0 -> v1.0
2、扩展
当我运行上面git clone --mirror http://域名/分组/仓库名称.git,发现这个clone太慢了
2.1解决办法:
- 详细请看《git clone速度太慢的解决办法》--简书
- 换成SSH去clone项目(配置SSH请看文章最后)
3、配置SSH
3.1客户端生成ssh key
ssh-keygen -t rsa -C "youremail@example.com"
3.2执行下面命令
$ ssh -v git@github.com
OpenSSH_8.1p1, OpenSSL 1.1.1d 10 Sep 2019
debug1: Reading configuration data /etc/ssh/ssh_config
..........................................
debug1: No more authentication methods to try.
git@github.com: Permission denied (publickey).
$ ssh-agent -s
SSH_AUTH_SOCK=xxxxxxxxxxxxxxxx; export SSH_AUTH_SOCK;
SSH_AGENT_PID=xxxx; export SSH_AGENT_PID;
echo Agent pid xxxx;
$ ssh-agent bash
$ ssh-add C:/xxxxxx/.ssh/id_rsa
Identity added: C:/xxxxxxxx/.ssh/id_rsa (youremail@example.com)
3.3配置服务端
打开你刚刚生成的id_rsa.pub,将里面的内容复制,进入你的github账号,在settings下,SSH and GPG keys下new SSH key,然后将id_rsa.pub里的内容复制到Key中,完成后Add SSH Key。