如何使用git同步上游仓库

简介: 如何使用git同步上游仓库

  某一天,你在github上看到了一个很棒的仓库,你觉得不错,于是你fork了这个仓库。但是某一天,仓库原作者修改了一些bug和增加了一些功能。按照理想状态下,好像觉得这个源仓库都更新了,那么我拷贝的这个仓库也会自动同步更新吧?

真实情况其实是:并不会自动更新,因为如果git这样设计的话会造成一些不可预知的情况发生。同步源仓库是理想状态下实现的效果,但是如果我们在完成自己的项目的时候,突然源仓库更新了,结果你现在项目的一些逻辑和之前不匹配了,这问题就大了。

在实际开发过程中经常会遇到上这样一种场景,需要同步上游仓库的代码。

方法一


回到正题:git如何同步上游仓库(以apisix-dashboard仓库为例)

因为记录这篇文章也是我学习的过程,所以我会从头开始慢慢讲解,以方便初学者查阅。

一.首先打开github

看到我们之前fork过的仓库,点进去会看到醒目的一个Fetch upstream


image.png

image.png

点击Compare按钮会出现到一个比较当前仓库和更新后仓库不同的地方,你可以通过这里简单的查看文件有哪些差异。

image.png

点击 Fetch and merge按钮,看到这两个单词,其实我们已经能猜出来它的功能是什么了,git fetch and git merge,具体实现了什么,我们马上就会解释。(下面是点击以后的界面)

image.png

这里需要解释清楚的是,这一步仅仅是将你自己fork的仓库代码和源仓库代码同步了,但是你本地工作区的仓库还没有更新。

二.回到vscode

执行git pull命令,将远程自己仓库的代码拉到自己的工作区即可。

image.png

如果已经是最新的代码,会出现下面的提示。

image.png

方法二


在这里需要进一步补充的内容是。其实上面的方法是接下来要讲的内容的语法糖(可以这么理解)

我们某一天不能查看github,但是我们知道上游仓库已经更新,想要把本地仓库更新为最新的上游仓库,和源仓库代码保持一致呢?这样该怎么办呢?(还有一种简单的,把现在的仓库删除,重新fork,然后重新clone也可,这里不讨论)

一.打开终端切换到当前代码路径下

输入git remote,查看你当前远程仓库

image.png

这个代表什么意思呢?简单理解就是,本地工作区只和这个origin远程仓库发生关系,不管是fetch 和 push 其实都是操作的这个仓库。如果在当前目录下执行git fetch命令,其实相当于写了git fetch origin master只不过省略了后面的origin mater而已。

那我们应该如何和远程上游仓库建立起联系呢?这里需要用到git remote add <name> <url>这个命令,具体怎么实现如下:

是我们自定义设置的,关键就是这个url在哪里获取?

首先,点击这里进入到源仓库

image.png

然后复制这里的地址即可

image.png

切换到终端执行下面命令

image.png

输入git remote -v查看现在远程仓库的信息

image.png

二.追踪查看上游代码

输入git fetch upstream master命令,注意这里如果使用git fetch其实还是默认拉下来origin的代码,一定要fetch upstream,这样才是把上游代码拉到本地查看。(我这里写了master,意思就是只拉下来上游master分支查看,省略的话就是拉下全部分支的代码)

image.png

接下来就是merge upstream/master

image.png

image.png

三.推送到origin 仓库

git push即可

现在你的仓库已经和上游master仓库同步了~





相关文章
|
1月前
|
开发工具 git
git篇3:idea中创建项目并提交到远程Git仓库
git篇3:idea中创建项目并提交到远程Git仓库
|
4月前
|
开发工具 git 开发者
git仓库分支管理
git仓库分支管理
|
5月前
|
安全 网络安全 开发工具
百度搜索:蓝易云【git无法使用git协议clone github仓库问题解决方法】
通过尝试以上解决方法,你应该能够解决无法使用Git协议克隆GitHub仓库的问题。选择适合你网络环境和要求的方法,并根据需要进行相应的配置。
188 2
|
5月前
|
Shell 开发工具 git
Git获取本地仓库及基础操作指令
Git获取本地仓库及基础操作指令
39 0
|
5月前
|
开发工具 git
Git 如何将一个项目的代码放到一个新的仓库中,但不在新的仓库中显示旧的提交记录
Git 如何将一个项目的代码放到一个新的仓库中,但不在新的仓库中显示旧的提交记录
81 0
|
4月前
|
存储 开发工具 git
Pycharm git-创建本地仓库\创建分支\合并分支\回溯版本\加入git后文件颜色代表的含义
Pycharm git-创建本地仓库\创建分支\合并分支\回溯版本\加入git后文件颜色代表的含义
73 0
|
2月前
|
开发工具 git
|
10天前
|
弹性计算 Shell 开发工具
自动化Git仓库清理与维护
【4月更文挑战第30天】
5 0
|
16天前
|
开发工具 数据安全/隐私保护 C++
vs2019中同步到github上的用户名错误_控制面板和vs的git全局设置重新登录
vs2019中同步到github上的用户名错误_控制面板和vs的git全局设置重新登录
16 0
|
1月前
|
Linux Shell 开发工具
linux 搭建git仓库 git代码仓库 (小团队内部合作)
linux 搭建git仓库 git代码仓库 (小团队内部合作)
32 1

相关实验场景

更多