进入我的博客阅读体验更好哦!博客文章链接:GitHub换源Gitee (lxq.icu)
为何需要更换远程仓库源?
-
GitHub被墙,连接极其不稳定
就拿我个人的博客来说,博客的源代码是部署在云服务器上的,每一次维护或者更改博客源代码的时候都需要碰运气,若是GitHub一直连接不上那么代码也就无法同步到云服务器。如今博客项目稳定还好说,但若是博客在测试阶段,每一次前端修改,每一次数据库更改都需要几分钟,对于项目来说实在是不算友好。换个角度理解,若是Git的优势(精简而迅速)被网络连接所限制,那么我为什么还使用Git呢?相比之下,Gitee的连接状态在国内就非常友好了,下面这张访问速度对比图很好地说明了这一点:
GitHub是但也只是一个基于Git的开源代码托管平台
首先需要说明的是,GitHub作为代码托管平台的地位是无可替代的,无论是其代码存量还是其社区活跃度都是世界上首屈一指的。如果你想要检索和分享代码,GitHub无疑是首选。但是,若是在工作、日常的使用中,GitHub就绝不是不可替代的了。Git毫无疑问是如今非常优秀的版本控制工具,若想充分的使用Git那么远程仓库就是必不可少的。Gitee等一众平台作为GitHub的竞品在此方面的表现是毫不逊色的,灵活地使用工具而不为工具所束缚是必要的。
本地换源——本地维护版本库(git push)
我把Git管理的项目分为两类:本地维护和服务器克隆。本地的项目拥有更改权限,主要负责维护代码并向远程仓库推送(git push
);服务器的项目则是通过克隆获得源码,当本地的项目更新后从远程仓库拉取(git pull
)以同步。
以我之前的项目举例,首先打开git bash使用remote -v
查看如今的远程源:
$ git remote -v
origin https://github.com/fucn569/weather_django.git (fetch)
origin https://github.com/fucn569/weather_django.git (push)
#origin为此项目的远程源名称
可以看到项目如今的远程源是在GitHub上的。接下来我们使用remote rm
删除远程仓库源:
$ git remote rm origin
#再使用git remote -v无输出信息,则成功删除
之后我们使用remote add
添加新的远程仓库源:
$ git remote add origin git@gitee.com:longxiaqiu/weather_django.git
#origin为远程源名称,git@gitee.com:longxiaqiu/weather_django.git为ssh链接
此处我添加的是ssh链接,相较于我之前的https链接,ssh对于本地项目来说更好。两者的区别是https通过账户、密码来认证,而ssh通过git生成的复杂密钥来认证。密钥存储在电脑中,安全且不需要输入账户、密码,更加迅速和便捷。
此时再查看远程源,已经关联到新的链接:
$ git remote -v
origin git@gitee.com:longxiaqiu/weather_django.git (fetch)
origin git@gitee.com:longxiaqiu/weather_django.git (push)
接下来我们创建一个新文件测试下是否成功:
$ touch 1.txt
$ git add 1.txt
$ git commit -m 'test'
[main 27eca60] test
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 1.txt
$ git push
fatal: The current branch main has no upstream branch.
To push the current branch and set the remote as upstream, use
git push --set-upstream origin main
可以看到,前几个操作都成功了,但是最后的git push
报错了,根据提示,我们使用git push --set-upstream origin main
关联本地与远程的分支:
$ git push --set-upstream origin main
Enumerating objects: 3, done.
Counting objects: 100% (3/3), done.
Delta compression using up to 16 threads
Compressing objects: 100% (2/2), done.
Writing objects: 100% (2/2), 225 bytes | 225.00 KiB/s, done.
Total 2 (delta 1), reused 0 (delta 0), pack-reused 0
remote: Powered by GITEE.COM [GNK-6.3]
To gitee.com:longxiaqiu/weather_django.git
d516191..27eca60 main -> main
Branch 'main' set up to track remote branch 'main' from 'origin'.
操作成功。
之后无需添加参数,使用git push
即可。
需要注意的是我之前已经通过Gitee一键转移了GitHub仓库,即仓库与本地都是有源码的,所以最后一步才需要合并分支(即使分支名字相同,但地址不同,所以实际仍然是两个分支)。如果是新建的仓库,那么可以将最后一步改为:
git push -u origin "main"
#main为分支名称
关于分支名称,下图中,括号的名称即为分支名称
或者可以使用git branch
查看分支:
$ git branch
* main
服务器换源——克隆版本库(git pull)
对于通过远程克隆的项目来说,情况就稍简单一些。
假设现在的情况是这样:我此时在服务器端的项目是克隆自GitHub,也就是说如果使用git remote -v
查询远程源,bash终端显示的是GitHub相关的地址:
$ git remote -v
origin https://github.com/fucn569/weather_django.git (fetch)
origin https://github.com/fucn569/weather_django.git (push)
但是随着本地库迁移到了Gitee,服务器端也需要将远程源迁移到Gitee以获取后续的更新。还是以同一个项目举例,操作如下:
首先与本地换源类似的,先删除原有的远程源并添加新的远程源:
$ git remote rm origin
$ git remote add origin git@gitee.com:longxiaqiu/weather_django.git
之后使用git pull
操作获取更新:
$ git pull
remote: Enumerating objects: 3, done.
remote: Counting objects: 100% (3/3), done.
remote: Compressing objects: 100% (2/2), done.
remote: Total 2 (delta 1), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (2/2), 203 bytes | 50.00 KiB/s, done.
From gitee.com:longxiaqiu/weather_django
992bb31..6254ad5 main -> origin/main
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=origin/<branch> main
与本地换源类似的,操作其实没有成功。根据提示我们知道虽然分支名称相同(main -> origin/main)但地址不同(992bb31…6254ad5),所以按照提示使用git branch --set-upstream-to=origin/<branch> main
(注意<branch>是本地分支名称,此处为main)合并分支:
$ git branch --set-upstream-to=origin/main main
Branch 'main' set up to track remote branch 'main' from 'origin'.
再进行git pull
:
$ git pull
Updating d516191..6254ad5
Fast-forward
1.txt | 0
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 1.txt
操作成功!
今天的文章GitHub换源Gitee——Git换源操作小记分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/60456.html