git 迁移代码库

152 阅读1分钟

迁移整个代码库到GitHub

  • 生成并获取sshkey
ssh-keygen -t rsa -C "邮箱地址"
cat ~/.ssh/id_rsa.pub

复制到 Settings-> SSH and GPG keys -> New SSH key

image.png

  • 创建一个新的repository

  • 迁移代码库

git clone --bare <原repository>.git
cd <原repository>.git
git push --mirror git@github.com:<owner>/<新repository>.git
  • 修改本地remote
vim .git/config

**替换remote url**
[remote "origin"]
url = git@github.com:<owner>/<新repository>.git
fetch = +refs/heads/*:refs/remotes/origin/*

**验证**
git pull 

Git使用git clone命令实现版本库克隆的三种方式

git clone <repository> <directory>
git clone --bare   <repository> <directory.git>
git clone --mirror <repository> <directory.git>

那么这三种方式有何不同呢?

  • git clone <repository> <directory> 创建一个克隆到<directory>目录,目录<directory>相当于clone版本库的工作区,文件都会检出,版本库位于工作区下的.git目录中。
  • git clone --bare <repository> <directory.git>git clone --mirror <repository> <directory.git> 是直接使用版本库的内容,这样的版本库称为裸版本库,裸版本库目录名写做<directory.git>
  • git clone --mirror <repository> <directory.git>可使用git fetch命令和上游版本库进行持续同步。