如何使用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仓库同步了~





相关文章
|
6月前
|
安全 开发工具 git
git添加远程仓库报错To add an exception for this directory解决方案-优雅草卓伊凡
git添加远程仓库报错To add an exception for this directory解决方案-优雅草卓伊凡
698 5
git添加远程仓库报错To add an exception for this directory解决方案-优雅草卓伊凡
|
8月前
|
开发工具 git 开发者
Git流程控制:远程仓库操作的实用指南
通过遵循这些步骤和策略,你将能够更有效地与远程仓库进行交互,确保代码变更的透明度和项目历史的干净。同时,良好的版本控制习惯可以减少潜在的冲突,并帮助保持代码库的整洁。在日常工作中应用这些实用的Git流程控制技巧将是非常有益的。
259 0
|
开发工具 git
如何操作github,gitee,gitcode三个git平台建立镜像仓库机制,这样便于维护项目只需要维护一个平台仓库地址的即可-优雅草央千澈
如何操作github,gitee,gitcode三个git平台建立镜像仓库机制,这样便于维护项目只需要维护一个平台仓库地址的即可-优雅草央千澈
1249 69
如何操作github,gitee,gitcode三个git平台建立镜像仓库机制,这样便于维护项目只需要维护一个平台仓库地址的即可-优雅草央千澈
|
11月前
|
网络安全 开发工具 git
Git仓库创建与代码上传指南
本教程介绍了将本地项目推送到远程Git仓库的完整流程,包括初始化本地仓库、添加和提交文件、创建远程仓库、关联远程地址及推送代码。同时,还提供了`.gitignore`配置、分支管理等可选步骤,并针对常见问题(如认证失败、分支不匹配、大文件处理及推送冲突)给出了解决方案。适合初学者快速上手Git版本控制。
|
12月前
|
Shell 开发工具 git
解决git bash报错:在仓库中检测到可疑的所有权
总的来说,解决“在仓库中检测到可疑的所有权”的报错,关键在于理解和调整文件或目录的所有权。只要我们正确地设置了文件或目录的所有权,那么我们就可以避免这种问题,让Git Bash正常工作。
543 22
|
文字识别 网络协议 开发工具
GitHub封锁?推荐5个国产的Git仓库替代平台
近日,GitHub对中国区IP的部分限制引发了广泛关注。未登录用户被拒,已登录用户功能受限,南北网络环境差异更显“内卷”。为应对这一挑战,本文推荐了多个国产Git平台:Gitee(码云)、GitCode(CSDN旗下)、CODING(腾讯系)、CodeUP(阿里云支持)及微信代码管理工具。这些平台功能全面、稳定性强,是开发者迁移项目的理想选择。通过同步代码、配置CI/CD流水线等简单步骤,可确保项目平稳过渡。此次事件提醒我们,掌握核心技能与支持国产平台同样重要!
11845 11
|
10月前
|
安全 Shell 开发工具
Windows下使用git配置gitee远程仓库
就在前几天因为一些原因,我的电脑重装了系统,然后再重新配置git的环境的时候就遇到了一些小问题。所以我决定自己写一篇文章,以便以后再配置git时,避免一些错误操作,而导致全网搜方法,找对的文章去找对应的解决方法。下面为了演示方便就拿gitee来演示,不拿GitHub了写文章了。
467 0
|
Devops Shell 网络安全
git使用之如何将一套代码同时推送至github|gitee|gitcode|gitlab等多个仓库-含添加ssh-优雅草央千澈完美解决-提供整体提交代码
git使用之如何将一套代码同时推送至github|gitee|gitcode|gitlab等多个仓库-含添加ssh-优雅草央千澈完美解决-提供整体提交代码
723 16
git使用之如何将一套代码同时推送至github|gitee|gitcode|gitlab等多个仓库-含添加ssh-优雅草央千澈完美解决-提供整体提交代码
|
Ubuntu Shell 开发工具
ubuntu/debian shell 脚本自动配置 gitea git 仓库
这是一个自动配置 Gitea Git 仓库的 Shell 脚本,支持 Ubuntu 20+ 和 Debian 12+ 系统。脚本会创建必要的目录、下载并安装 Gitea,创建 Gitea 用户和服务,确保 Gitea 在系统启动时自动运行。用户可以选择从官方或小绿叶技术博客下载安装包。
783 2
|
网络协议 网络安全 开发工具
【Git快速入门】Git代码管理手册与协同开发之远程仓库(四)
【Git快速入门】Git代码管理手册与协同开发之远程仓库(四)
275 2