热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

在GitHub上fork项目后,如何与原仓库同步?

起因之前,我写过一篇文章:在GitHub上fork项目后,如何与原仓库同步?图解全过程,介绍如何在自己for

起因

之前,我写过一篇文章:在GitHub上fork项目后,如何与原仓库同步?图解全过程,介绍如何在自己fork的项目里跟随原仓库进行同步更新。

按照这个方法提交的PR是这样的:

可以看到有一些和本次PR无关的提交日志,终于这次被大佬质疑了:

面对大佬的质疑,像我这样优(mí)秀(máng)的人,像我这样聪(xún)明(zhǎo)的人,当然是马上这样回复了:

All right!
我必须推翻之前的我自己写文章,虽然啪啪啪低打了自己的脸,但也要立正站好

终极解决办法

经过我的刻苦学习git知识,我终于找到了终极解决方案,下面以我实际的项目为例,给小伙伴们展示一下。

  1. 先把我自己 fork 的 skywalking 项目克隆到本地:

git clone https://github.com/heihaozi/skywalking.git skywalking

输出如下:

Cloning into 'skywalking'...
remote: Enumerating objects: 232380, done.
remote: Counting objects: 100% (416/416), done.
remote: Compressing objects: 100% (228/228), done.
remote: Total 232380 (delta 119), reused 327 (delta 71), pack-reused 231964
Receiving objects: 100% (232380/232380), 155.35 MiB | 7.12 MiB/s, done.
Resolving deltas: 100% (89444/89444), done.
Updating files: 100% (5790/5790), done.

  1. 进入克隆的本地目录,把 skywalking 官方地址添加为远程仓库,我们叫它upstream:

git remote add upstream https://github.com/apache/skywalking.git

查看是否添加成功:

git remote -v

输出如下:

origin https://github.com/heihaozi/skywalking.git (fetch)
origin https://github.com/heihaozi/skywalking.git (push)
upstream https://github.com/apache/skywalking.git (fetch)
upstream https://github.com/apache/skywalking.git (push)

说明已经添加成功了。

  1. 从远程仓库upstream获取所有更新。

git fetch upstream

输出如下:

remote: Enumerating objects: 344, done.
remote: Counting objects: 100% (344/344), done.
remote: Compressing objects: 100% (83/83), done.
remote: Total 225 (delta 99), reused 185 (delta 68), pack-reused 0
Receiving objects: 100% (225/225), 32.78 KiB | 1.82 MiB/s, done.
Resolving deltas: 100% (99/99), completed with 67 local objects.
From https://github.com/apache/skywalking* [new branch] 5.x -> upstream/5.x* [new branch] 6.x -> upstream/6.x* [new branch] feature/2.x -> upstream/feature/2.x* [new branch] feature/3.0.x -> upstream/feature/3.0.x* [new branch] feature/3.1.x -> upstream/feature/3.1.x* [new branch] master -> upstream/master* [new branch] website-docs/8.2.0 -> upstream/website-docs/8.2.0* [new branch] website-docs/8.3.0 -> upstream/website-docs/8.3.0* [new branch] website-docs/8.4.0 -> upstream/website-docs/8.4.0* [new branch] zipkin -> upstream/zipkin

  1. 确保分支在主干上:

git checkout master

  1. 重写主干的历史纪录:

git rebase upstream/master

输出如下:

Successfully rebased and updated refs/heads/master.

  1. 强制推送到 GitHub 上的远程仓库:

git push -f origin master

输出如下:

Total 0 (delta 0), reused 0 (delta 0), pack-reused 0
To https://github.com/heihaozi/skywalking.git17fffe8e1..3b15f8d13 master -> master

至此,大功告成!

在文章最后求赞,有些人可能会想,求赞狗我才不点,我就要白嫖;而有些人则很 nice,花了几秒钟,点赞收藏评论一气呵成。




可能这随手的一键三连,就让我们成为了朋友,以后他有什么工作或职场的问题,我可以给出一些有用的建议。


推荐阅读
  • 深入解析Java枚举及其高级特性
    本文详细介绍了Java枚举的概念、语法、使用规则和应用场景,并探讨了其在实际编程中的高级应用。所有相关内容已收录于GitHub仓库[JavaLearningmanual](https://github.com/Ziphtracks/JavaLearningmanual),欢迎Star并持续关注。 ... [详细]
  • 数据库内核开发入门 | 搭建研发环境的初步指南
    本课程将带你从零开始,逐步掌握数据库内核开发的基础知识和实践技能,重点介绍如何搭建OceanBase的开发环境。 ... [详细]
  • 本文详细介绍了Java编程语言中的核心概念和常见面试问题,包括集合类、数据结构、线程处理、Java虚拟机(JVM)、HTTP协议以及Git操作等方面的内容。通过深入分析每个主题,帮助读者更好地理解Java的关键特性和最佳实践。 ... [详细]
  • 本文详细介绍了 Apache Jena 库中的 Txn.executeWrite 方法,通过多个实际代码示例展示了其在不同场景下的应用,帮助开发者更好地理解和使用该方法。 ... [详细]
  • 从零开始构建完整手机站:Vue CLI 3 实战指南(第一部分)
    本系列教程将引导您使用 Vue CLI 3 构建一个功能齐全的移动应用。我们将深入探讨项目中涉及的每一个知识点,并确保这些内容与实际工作中的需求紧密结合。 ... [详细]
  • VSCode与Gitee集成:项目提交的高效实践
    本文介绍如何利用VSCode内置的Git工具将项目提交到Gitee,简化Git命令的使用,提升代码管理效率。同时分享一些常见的踩坑经验和解决方案。 ... [详细]
  • 在本周的白板演练中,Apache Flink 的 PMC 成员及数据工匠首席技术官 Stephan Ewen 深入探讨了如何利用保存点功能进行流处理中的数据重新处理、错误修复、系统升级和 A/B 测试。本文将详细解释保存点的工作原理及其应用场景。 ... [详细]
  • 深入解析Redis内存对象模型
    本文详细介绍了Redis内存对象模型的关键知识点,包括内存统计、内存分配、数据存储细节及优化策略。通过实际案例和专业分析,帮助读者全面理解Redis内存管理机制。 ... [详细]
  • 本文详细介绍了 Java 中的 org.apache.hadoop.registry.client.impl.zk.ZKPathDumper 类,提供了丰富的代码示例和使用指南。通过这些示例,读者可以更好地理解如何在实际项目中利用 ZKPathDumper 类进行注册表树的转储操作。 ... [详细]
  • 深入解析Java虚拟机(JVM)架构与原理
    本文旨在为读者提供对Java虚拟机(JVM)的全面理解,涵盖其主要组成部分、工作原理及其在不同平台上的实现。通过详细探讨JVM的结构和内部机制,帮助开发者更好地掌握Java编程的核心技术。 ... [详细]
  • 深入解析:OpenShift Origin环境下的Kubernetes Spark Operator
    本文探讨了如何在OpenShift Origin平台上利用Kubernetes Spark Operator来管理和部署Apache Spark集群与应用。作为Radanalytics.io项目的一部分,这一开源工具为大数据处理提供了强大的支持。 ... [详细]
  • Java 架构:深入理解 JDK 动态代理机制
    代理模式是 Java 中常用的设计模式之一,其核心在于代理类与委托类共享相同的接口。代理类主要用于为委托类提供预处理、过滤、转发及后处理等功能,以增强或改变原有功能的行为。 ... [详细]
  • 本文详细介绍了如何通过Git Bash在本地仓库与远程仓库之间建立连接并进行同步操作,包括克隆仓库、提交更改和推送更新等步骤。 ... [详细]
  • Linux环境下Git安装及常见问题解析
    本文详细介绍了在Ubuntu系统中安装Git的过程,包括环境检查、软件安装、用户配置以及SSH密钥生成等步骤,并针对安装过程中可能出现的问题提供了有效的解决方案。 ... [详细]
  • 在Win10上利用VS2015构建Caffe2环境
    本文详细介绍如何在Windows 10操作系统上通过Visual Studio 2015编译Caffe2深度学习框架的过程。包括必要的软件安装、环境配置以及常见问题的解决方法。 ... [详细]
author-avatar
mobiledu2502900255
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有