如何转移 Git 仓库(涉及到git远程仓库的命令)

8 篇文章 0 订阅

GitHub官方提供的复制仓库方式

## 创建仓库的裸克隆
$ git clone --bare https://github.com/exampleuser/old-repository.git
## 镜像推送至新仓库
$ cd old-repository.git
$ git push --mirror https://github.com/exampleuser/new-repository.git
## 删除您之前创建的临时本地仓库
$ cd ..
$ rm -rf old-repository.git
## End
## 如果不想删除,想将裸克隆恢复成正常仓库,请使用以下两步
$ git config --unset core.bare    # 解除core.bare模式
$ git reset --hard       # 恢复所有的repo文件

以下是,基于我的理解进行的学习和克隆操作。

一、步骤:克隆 —> 设置新远程 —> Push

涉及命令:git clone、git remote [ set-url | rename | add | -v ]、git push [ --all | -u | --tags ]

## 克隆
$ git clone [remote repository address]        #克隆原仓库
## 转移方法 1 (两行命令法)
$ git remote set-url origin gitcode.xxx-new.com/xxx.git   #设置新远程
$ git push origin --all                        #推送所有分支
## 转移方法 2 (保留。两个远程仓库法):
$ git remote -v								   #查看目前的连接了哪些远程连接
$ git remote add new_origin ssh://git@gitcode.xxx.com/xxx/xxpay.git       #新远程
$ git push -u new_origin --all   #-u代表upstream,以后默认使用新连接推送
$ git push origin --tags  		#转移标签, 没有可省略
## End
## 补充
$ git remote rename origin old-origin      #改名

二、如何切换本地分支,使转移后的分支完整

涉及命令:git checkout [ -t | -b ]、git push、git clone [ -b | - a | -r ]、git fetch [ --all ]

直接clone下来的代码看着只有一个分支,但是其实本地已经包含了所有分支,只是需要你去切换。(因为存在转移后,漏掉其他分支的情况,你需要再检查一下,如果漏掉,请使用以下方法拉取所有分支后,再push一遍)

## 转移仓库分支
$ git checkout -t origin/branchName  #本地新建远程对应分支
## equal: git checkout -b branchName origin/branchName
## 新建远程分支 (推送我们新建的分支到远程)
$ git push origin [localBranchName]:[newRemoteBranchName] 
## End
## 补充
# 克隆同时选定分支
$ git clone -b <branch name> [remote repository address]
# 查看所有分支, 包括远程分支
$ git branch -a
# 查看所有远程分支
$ git branch -r
# 关联本地分支与远程分支 (不加-b)
$ git checkout branchName origin/branchName 
# 似乎可以拉取所有分支
$ git fetch --all

三、打tag标签

tag 标签是指向commit的死指针,分支是指向commit的活指针。

$ git tag v0.1  # "v0.1"就是tag名
# 当没有指定哪一条提交记录是默认为HEAD,也就是当前最近的一条提交记录。
$ git tag v0.1 f52c633  # 指定提交记录打tag
$ git tag  # 查看所有tag标签
$ git tag -a v0.1 -m "描述信息"
$ git show v0.1 # 查看标签的说明文字
$ git tag -d v0.1 # 删除
# tag 只存在本地,不会自动推送到远程。
$ git push origin v1.0 # 推送一条
$ git push origin --tags # 推送所有tag
# 删除远程tag
$ git tag -d v0.1 && git push origin :refs/tags/v0.1
# 查看效果
$ git ls-remote --tags origin
(完)
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值