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

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

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

方法一

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

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

一.首先打开github

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

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

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

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

二.回到vscode

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

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


方法二

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

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

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

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

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

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

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

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

然后复制这里的地址即可

切换到终端执行下面命令

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

二.追踪查看上游代码

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

接下来就是merge upstream/master

三.推送到origin 仓库

git push即可

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

如何使用git同步上游仓库相关推荐

  1. Git同步上游并保留自己本地的修改

    Git同步上游并保留自己本地的修改 前言 最近在折腾GitHub一些开源的项目,但是开源的达不到我想要的效果,于是就自己魔改,那就肯定得同步上游,并且保留自己的改动. 克隆仓库 git clone h ...

  2. git同步个人仓库与主仓库代码

    为fork库配置原始远程库 (首先,在git配置远程只想上层仓库) 1.git remote -v 2.配置主仓库路径 git remote add upstream 如果出现以下状况! 则在后面加上 ...

  3. git fock的子项目从上游仓库(源项目)同步更新

    1.clone fock的项目到本地 git clone https://github.com/YOUR_USERNAME/YOUR_FORK.git 2.查看项目远程状态 git remote -v ...

  4. 同步fork的上游仓库代码更新:git pull upstream

    git pull upstream同步上游更新 在使用git管理项目的时候,不管是gitlab还是github项目,都可以通过fork将上游仓库的项目复制到自己仓库中,但是上游的仓库变更时,怎么同步更 ...

  5. Git连接GitHub仓库,同步上传图片及CSDN外链图片转存失败解决方案

    Git连接GitHub仓库,同步上传图片及CSDN外链图片转存失败解决方案 ​ 最近在使用markdown编辑器写博客时,发现了一个问题,就是本地图片的上传问题,查阅发现,可以上传本地图片,使用外链进 ...

  6. git同步代码到远程github仓库

    原文地址: http://www.runoob.com/git/git-remote-repo.html Git 远程仓库(Github) Git 并不像 SVN 那样有个中心服务器. 目前我们使用到 ...

  7. git如何同步本地仓库与远程仓库代码

    fork仓库代码至本地后如何同步原仓库或其他成员仓库代码至本地 1.git remote查看远程仓库 目前只有origin是因为只是克隆了自己的仓库,还没有配置其他远程仓库,这是git给予克隆仓库的默 ...

  8. 使用git同步到远程仓库

    使用git同步到远程仓库 在仓库所在的目录(D:\temp\git\repository)点击右键选择"Git Bash Here",启动git bash程序. 然后在git ba ...

  9. git创建fork仓库和关联fork仓库 git提交新分支之git删除本地分支和git删除远程分支——git remote prune origin同步分支

    git创建fork仓库和关联fork仓库 & git提交新分支之git删除本地分支和git删除远程分支--git remote prune origin同步分支 & 跨分支合并-新建分 ...

最新文章

  1. CSS和JS样式属性对照表
  2. 实现cookie跨域
  3. git遇到的问题之“Please make sure you have the correct access rights and the repository exists.”...
  4. linux电脑培训,电脑培训Linux服务器初始化Shell
  5. Linux kernel 4.x中的min和max宏
  6. 你是你产品的头号用户
  7. SVN创建分支与合并
  8. mysql怎么把两个表格的数据合并成一行_mysql中将多行数据合并成一行数据
  9. 古风排版 python
  10. 用python画小仓鼠教程_小仓鼠简笔画教程
  11. 如何实现自定义主题切换?
  12. MEC与C-V2X融合应用场景白皮书
  13. 示例程序009--阙值化(二值化,cvThreshold)
  14. linux srs安装教程,SRS环境搭建
  15. 护肤品买了这么多还是不见好转,钱都去哪里了?
  16. IEEE xplore论文免费下载
  17. 软件测试如何快速上手,了解KYM? 阿里总监是这样说的
  18. win10通过计算机名称共享打印机,WIN10怎么连接共享打印机到电脑上
  19. 使用switch编写一个四则运算(+、-、*、/)
  20. C语言:计算同一年内两个日期的相隔天数

热门文章

  1. idea - 添加本地jar包依赖
  2. 离线地图服务-三种方案
  3. 你忽略的宝藏,iPhone 手机辅助功能
  4. css Backgroud-clip (文字颜色渐变)
  5. lol影流区服务器不稳定,影流服务器卡顿问题 影流的朋友进来 麻烦告知下
  6. CTF BugKu平台——Crypto篇刷题记录(后续更新)
  7. wed渗透:记录kali系统下扫描工具nikto的使用
  8. 小米是android版本,小米运动
  9. php 基于ICMP协议实现一个ping命令
  10. 简单快速PS制作绚丽光斑散景效果