本地git仓库迁移到远程git仓库

举报
yd_221104950 发表于 2020/12/03 00:01:10 2020/12/03
【摘要】 为了下文讨论方便,我们将要迁移的git仓库称为本地仓库,远程git仓库称为远程仓库。要求保留提交记录,下面是迁移的步骤。 1.创建空的远程仓库 1.1.在GitLab web页面创建 创建完成后,将得到git地址:http://10.69.12.11/android/hello.git 1.2.使用GitLab或GitHub提供的API创建 为了以最简单的方式...

为了下文讨论方便,我们将要迁移的git仓库称为本地仓库,远程git仓库称为远程仓库。要求保留提交记录,下面是迁移的步骤。

1.创建空的远程仓库

1.1.在GitLab web页面创建

创建完成后,将得到git地址:http://10.69.12.11/android/hello.git

1.2.使用GitLab或GitHub提供的API创建

为了以最简单的方式使用API,我将在~/.bashrc配置文件中编写一段shell脚本来完成:

~$ vim ~/.bashrc

  
 
  • 1

在.bashrc最后添加以下这个内容:

  • GitLab版本:
repo_create(){
		# 判断是否存在参数,有,则赋给repo_name变量,否则使用当前目录作为repo_name的值 if [ $1 ];then repo_name=$1 else repo_name=`basename $(pwd)` echo "set Repo Name to ${repo_name}" fi # 使用GitLab Api创建远程仓库 # oExkVZEW2WKDcoF6mXdW是Personal access tokens,在gitlab web上创建 # name=${repo_name}是指定仓库的名称 # namespace_id=12是group id可以在gitlab上查到 # http://10.69.12.11/api/v4/projects,则是GitLab服务器的地址,及api curl -k --request POST --header "PRIVATE-TOKEN:oExkVZEW2WKDcoF6mXdW" --data "name=${repo_name}&namespace_id=12" http://10.69.12.11/api/v4/projects
}

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • GitHub版本:
repo_create(){
		# 判断是否存在参数,有,则赋给repo_name变量,否则使用当前目录作为repo_name的值 if [ $1 ];then repo_name=$1 else repo_name=`basename $(pwd)` echo "set Repo Name to ${repo_name}" fi # 使用GitHub Api创建远程仓库 # 8ad7a0e3faaa7574c4c1f38b5280c7d9ecf980ab是Personal access tokens,在GitHub上创建 # '{"name":"'${repo_name}'"}'是指定仓库的名称 curl -u 'helloworld@sina.com:8ad7a0e3faaa7574c4c1f38b5280c7d9ecf980ab' https://api.github.com/user/repos -d '{"name":"'${repo_name}'"}'
}

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

执行source命令,使用配置文件生效:

~$ source ~/.bashrc

  
 
  • 1

使用repo_create创建远程仓库:

~$ repo_create Hello

  
 
  • 1

成功将创建后,会返回http://10.69.12.11/android/hello.git。
GitLab API参考https://docs.gitlab.com/ce/api/

2.删除本地仓库原先关联的远程仓库

~/local_project$ git remote rm origin

  
 
  • 1

3.将本地仓库关联到新的远程仓库

~/local_project$ git remote add origin http://10.69.12.11/android/hello.git

  
 
  • 1

注意:如果没有进行第2点的操作,将会报如下错:

fatal: remote origin already exists.

4.将本地仓储的代码提交到待提交缓存中

~/local_project$ git add .

  
 
  • 1

5.写备注(可选)

~/local_project$ git commit -m "迁移Local_project项目到远程hello仓库"

  
 
  • 1

6.合并历史记录(当远程仓库创建并初始化后,即做了git init操作,就要进行这一步的操作,否则跳过)

6.1.指定要合并的分支

~/local_project$ git branch --set-upstream-to=origin/master master

  
 
  • 1

注意:上面的意思是将本地master分支与远程的origin/master分支进行合并。

6.2.开始合并

~/local_project$ git pull origin master --allow-unrelated-histories

  
 
  • 1

7.提交代码

将代码提交到远程仓库

~/local_project$ git push -u origin master

  
 
  • 1

点击关注:

在这里插入图片描述

文章来源: blog.csdn.net,作者:WongKyunban,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/weixin_40763897/article/details/105555429

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。