代码仓库迁移:从Github切换到Gitee

我的项目需要从 Github 切换到 Gitee,因为 Github 在国内 push 非常困难(众所周知的原因)

下面记录一下,我 Mac 电脑本地的 Github 仓库是如何迁移到 Gitee 上的。

Gitee 仓库准备

首先,需要在 Gitee 上新建一个仓库,这里过程略过。

建完了之后,Gitee 地址:https://gitee.com/superzdd/my-website.git

同时,Github 地址:https://github.com/superzdd/my-website.git

清除本地仓库

先检查,查看本地地址是否是关联 Github

# 显示本地关联的远程仓库地址
git remote -v   

# 输出内容如下
# 说明我的项目环境内,存在origin的本地仓库名
origin  https://github.com/superzdd/my-website.git (fetch)
origin  https://github.com/superzdd/my-website.git (push)

进行清除

# 注意,origin或者取决于你的本地仓库名叫什么
git remote rm origin

清除之后,再查看一次

git remote -v # 这是如果不输出任何内容,那就是切换成功了

切换到远端 Gitee 地址

# 后面两个参数要修改成对应的项目
# my-website是仓库名,这个仓库名是本地的,不需要和远端仓库同名
# https://gitee.com/superzdd/my-website.git 是Gitee的地址
git remote add my-website https://gitee.com/superzdd/my-website.git
git remote -v # 检查切换是否成功,切换成功后应该会显示这些内容

# 输出如下
my-website      https://gitee.com/superzdd/my-website.git (fetch)
my-website      https://gitee.com/superzdd/my-website.git (push)

PS:本地仓库和远端仓库不需要同名

git remote add origin https://gitee.com/superzdd/my-website.git
git push -u origin "main"

选择远端分支

切换完地址之后,直接进行 git pull 时仍然会报错的,因为还没有选择远端分支:

# 获取所有分支
git fetch my-website

# 输出如下
From https://gitee.com/superzdd/my-website
* [new branch]      main       -> my-website/main

# 选择分支
# 这里也有两个参数
# my-website是仓库名
# main代表分支名,这个名字需要在Gitee上确认,但一般情况下都是main,main是Gitee上的默认主分支的名字
git branch --set-upstream-to=my-website main

注意:如果刚才设置的本地仓库名为origin,那上面这句话要修改为:

# 查看远端分支
>>> git branch -r

origin/dependabot/npm_and_yarn/tvp-vue-demo/ws-6.2.2
origin/dependabot/npm_and_yarn/tvp-vue-demo/y18n-3.2.2
origin/master

# 将本地的origin/master 关联到远端origin/master分支
>>> git branch --set-upstream-to=origin/master

# 如果远端分支叫main
>>> git branch --set-upstream-to=origin/main

Git pull 拉取代码

这时所有的切换动作已经都做完了,可以尝试拉取代码

git pull

错误情况排查

错误日志:切换到远程地址时,仓库名没写

git remote add https://gitee.com/superzdd/my-website.git

# 输出如下
usage: git remote add [<options>] <name> <url>

    -f, --fetch           fetch the remote branches
    --tags                import all tags and associated objects when fetching
                          or do not fetch any tag at all (--no-tags)
    -t, --track <branch>  branch(es) to track
    -m, --master <branch>
                          master branch
    --mirror[=(push|fetch)]
                          set up remote as a mirror to push to or fetch from

这个错误信息表明你使用 git remote add 命令时没有提供正确的参数。git remote add 命令用于添加一个新的远程仓库地址,其格式为 git remote add <name> <url>

错误日志:pull前未fetch

git branch --set-upstream-to=my-website main

# 输出如下
error: the requested upstream branch 'my-website' does not exist
hint:
hint: If you are planning on basing your work on an upstream
hint: branch that already exists at the remote, you may need to
hint: run "git fetch" to retrieve it.
hint:
hint: If you are planning to push out a new local branch that
hint: will track its remote counterpart, you may want to use
hint: "git push -u" to set the upstream config as you push.

这个错误信息表明你尝试设置一个上游分支,但是远程仓库中没有名为 main 的分支。你需要先确保远程仓库中存在你要设置的分支。

你可以通过运行 git fetch 命令来获取远程仓库的最新分支信息。这将从远程仓库下载所有分支的信息,但不会自动合并或修改你的本地分支。

git fetch my-website

运行这个命令后,再次尝试执行 git branch --set-upstream-to=my-website main 命令,应该就不会再出现这个错误了。

错误日志:pull 前未选择分支

git pull

# 输出如下
There is no tracking information for the current branch.
Please specify which branch you want to merge with.
See git-pull(1) for details.

    git pull <remote> <branch>

If you wish to set tracking information for this branch you can do so with:

    git branch --set-upstream-to=<remote>/<branch> main

这个错误信息表明你正在尝试从远程仓库拉取代码,但是当前分支没有设置跟踪分支。换句话说,Git 不知道应该从哪个远程分支拉取代码。

要解决这个问题,你可以按照错误信息中的提示,使用 git branch --set-upstream-to 命令来设置跟踪分支。你需要将 <remote>/<branch> 替换为你要拉取的远程分支的完整名称。

附录

日志:从 Gitee 反切 Github

### 下方日志 >>>代表我的输入,其他内容为输出

>>> git remote -v
my-website      https://gitee.com/superzdd/my-website.git (fetch)
my-website      https://gitee.com/superzdd/my-website.git (push)
origin  https://gitee.com/superzdd/my-website.git (fetch)
origin  https://gitee.com/superzdd/my-website.git (push)

>>> git remote rm origin
>>> git remote rm my-website
>>> git remote -v
origin

# 原地有个origin一直清理不掉
# 就打算用这个origin 挂载到github上
>>> git remote rm origin
fatal: No such remote: 'origin'

>>> git remote add origin https://github.com/superzdd/my-website.git
>>> git remote -v
origin  https://github.com/superzdd/my-website.git (fetch)
origin  https://github.com/superzdd/my-website.git (push)

切换好分支以后,关闭本地 vpn,然后重启电脑

git pull # 成功

切回来的时候,并没有fetchbranch就能用了,估计是切到origin分支的原因。

至此GiteeGithub仓库互相切换全部完毕。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,033评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,725评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,473评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,846评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,848评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,691评论 1 282
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,053评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,700评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,856评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,676评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,787评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,430评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,034评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,990评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,218评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,174评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,526评论 2 343

推荐阅读更多精彩内容