我们经常在Github中Fork别人优秀的项目(在自己的GitHub下面生成一个repository),如果原仓库作者或组织更新仓库,此时你Fork的项目并不会更新,如果我们想要更新操作,该如何操作?在Gitee上面操作比较便捷,有一个pull按钮。

这里有两种方式:

  1. 在GitHub上面直接发起pull request;

  2. 在本地仓库使用命令行操作;

下面就这两种方式进行介绍:

方式一:在GitHub上面直接发起pull request

这个方式适合新手,对git命令和原理不是很清楚的。按照下面的步骤进行操作,就拿spring-boot项目的Fork为例!

  1. 打开fork 过来的项目如下所示:

  2. 点击new pull request

  3. 在进入的界面, 后进行将左边的设置为你自己的仓库, fork 过来的源在右边.

  4. 当选择完后会变成下图:

  5. 接下来, 将其展示出可以调整状态: 右边改为源fork地址

  6. 就会出现变更数据:

  7. 点击create pull request

  8. 进行数据的合并:

  9. 最后合并:



    到此就完成了:



方式二:在本地仓库使用命令行操作;

  该方式应该是使用的比较多的方法,因为在本地一般都会有一个仓库的。

参考文档:

问题场景:

新公司要求所有的代码提交都要先通过自己的库提交到主repo上去,所以先在gitlab网页上fork出一个自己的库,在本地修改完代码后提交到远程自己库上,然后在gitlab网页上发起一个merge request请求,然后等待主repo主人review,同意之后合入。

问题是同时也有其他同学在主repo合入代码,所以我要定期和主repo保持同步。

开始我的想法是

gitlab网页上提供了git pull这样的按钮,这样点一下就能让自己fork的库和原始库保持同步。然后自己在本地git pull,就能间接和原始的库保持同步。

但是我没找到这个按钮。但是我找到了下面这篇文章,照着操作之后,一步一步跟踪观察发现,每一步都能成功。

整体思路如下:

在自己的本地添加主repo为上游代码库,注意只是配置原仓库的路径,并没有真正clone原仓库,

然后将远程主repo同步到自己本地的机器,

然后本地的机器再push到自己的远程的fork库

所有的操作都要在本地命令行完成

下面是我转载的,照着这个操作,完全没问题:

我们在进行Github协同开发的时候,往往会去fork一个仓库到自己的Github中,过一段时间以后,原仓库可能会有各种提交以及修改,很可惜,Github本身并没有自动进行同步的机制,这个需要我们手动去执行,现在我来演示一下如何进行自己的仓库和原仓库进行Gith同步的操作。

(1)我使用终端 命令行的方式在Mac中来操作。首先在终端中配置原仓库的位置。进入项目目录,执行如下命令:查看你的远程仓库的路径。

(2)配置原仓库的路径:

下面这步操作即添加主repo为上游代码库

注意一定要cd到你自己fork出来的库里面去,比如工程名叫luoluo,那要先cd到luoluo中去,然后才能操作

(3)再次查看远程目录的位置:

(4)抓取原仓库的修改文件:

执行效果如下所示

(5)切换到master分支。

(6)合并远程的master分支:

下面这行代码执行结束之后,本地代码会立刻和主库保持同步,非常神奇

(7)此时,你的本地库已经和原仓库已经完全同步了。但是注意,此时只是你电脑上的本地库和远程的github原仓库同步了,你自己的github仓库还没有同步,此时需要使用“git push”命令把你本地的仓库提交到github中。

这是华丽的分割线

其实(4)(5)(6)可以合并成一条命令

git pull upstream master

第一个参数pustream 表示远程主repo

第二个参数master 表示自己fork库的master分支

这个是公司文档上写的,并不是从网上找来的

为了说清楚这个问题,亲自做了一张图

Github中进行fork后,原仓库更新了如何与原仓库同步的更多相关文章

  1. GitHub中Fork来的仓库如何进行双向更新

    一.做点贡献 想对别人的某个仓库"做点贡献"怎么办? 1. Fork该仓库 首先Fork该仓库,本文以git-learn这个仓库为例 这样自己的账号下就会出现这样一个仓库 2. C ...

  2. 学习Git的一点心得以及如何把本地修改、删除的代码上传到github中

    一:学习Github的资料如下:https://git.oschina.net/progit/ 这是一个学习Git的中文网站,如果诸位能够静下心来阅读,不要求阅读太多,只需要阅读前三章,就可以掌握Gi ...

  3. Git进行fork后如何与原仓库同步

    在进行Git协同开发的时候,往往会去fork一个仓库到自己的Git中,过一段时间以后,原仓库可能会有各种提交以及修改,很可惜,Git本身并没有自动进行同步的机制,这个需要手动去执行.name如何进行自 ...

  4. 在 github 中新建仓库后,如何上传文件到这个仓库里面。

    在 github 中新建仓库后,如何上传文件到这个仓库里面. libin@hglibin MINGW64 /e/github.io (master) $ git remote libin@hglibi ...

  5. gitlab或github下fork后如何同步源的新更新内容?

    两种方式: 项目 fetch 到本地,通过命令行的方式 merge 懒人方法,只用 Github ,不用命令行 1.项目 fetch 到本地,通过命令行的方式 merge 提示:跟上游仓库同步代码之前 ...

  6. github中的watch、star、fork的作用

    [转自:http://www.jianshu.com/p/6c366b53ea41] 在每个 github 项目的右上角,都有三个按钮,分别是 watch.star.fork,但是有些刚开始使用 gi ...

  7. 【github&&git】1、github中的watch、star、fork的作用

    [转自:http://www.jianshu.com/p/6c366b53ea41] 在每个 github 项目的右上角,都有三个按钮,分别是 watch.star.fork,但是有些刚开始使用 gi ...

  8. 如何用好 github 中的 watch、star、fork

    http://www.jianshu.com/p/6c366b53ea41 https://www.zhihu.com/question/20431718 在每个 github 项目的右上角,都有三个 ...

  9. github fork后的pull和保持同步

    前言 对github上的某个项目贡献自己的修改,但自己可能并没有那个仓库的权限,那要如何操作呢?git的机制和svn还是有些区别的,本文做些记录. 思路1 clone项目到本地,有修改之后,直接提交到 ...

随机推荐

  1. Linux kernel简介

    内核体系设计分:单内核,微内核 windows是微内核设计. Linux是单内核设计,但充分借鉴了为微内核体系的优点,为内核引入了模块化机制. 内核的组成部分 kernel:内核核心,一般为bz压缩的 ...

  2. 展讯sprd_battery.c 充电驱动

    sprd_battery.c 是充电驱动,这个是充电功能的核心内容,电量显示策略.温度检测策略.充电保护机制等功能在这里实现,功能实现与硬件细节剥离,调用通用接口实现逻辑控制: 1 sprdbat_p ...

  3. opencv —— findContours、drawContours 寻找并绘制轮廓

    轮廓图像与 Canny 图像的区别 一个轮廓一般对应一系列的点,也就是图像中的一条曲线.轮廓图像和 Canny 图像乍看起来表现几乎是一致的,但其实组成两者的数据结构差别很大: Canny 边缘图像是 ...

  4. JS DOM属性,包括固有属性和自定义属性,以及属性获取、移除和设置

    属性分为固有属性property和自定义属性attribute 固有属性查看 固有属性可以通过ele.property 来获取,自定义属性不行 <!DOCTYPE html> <ht ...

  5. for _ in range(n) python里那些奇奇怪怪的语法糖

    for _ in range(n)中 _ 是占位符, 表示不在意变量的值 只是用于循环遍历n次. 例如在一个序列中只想取头和尾,就可以使用_ 其实意思和for each in range(n)是一个意 ...

  6. 蓝眼睛与红眼睛(The blue-eyed islanders puzzle)

    澳大利亚的华裔数学神童陶哲轩曾在网上贴出来一个问题 The blue-eyed islanders puzzle 让大家思考,逗大家玩儿. 说一个岛上有100个人,其中有5个红眼睛,95个蓝眼睛.这个 ...

  7. 剑指offer-面试题44-数字序列中某一位的数字-脑筋急转弯

    /* 题目: 数字以0123456789101112131415…的格式序列化到一个字符序列中. 在这个序列中,第5位(从0开始计数,即从第0位开始)是5,第13位是1,第19位是4,等等. 请写一个 ...

  8. 用sort实现对struct的排序

    用sort 排序 struct +++ //method 1 struct node{ int k,s; }p[5005]; bool cmp1(node x,node y){ return x.s& ...

  9. 3个N加上各种运算符号结果等于6(纯属娱乐)C#

    网上的题目: 题有点难  但都有解 2    2    2  =  6 3    3    3  =  6 4    4    4  =  6 5    5    5  =  6 6    6     ...

  10. 数据结构与算法之比较排序【Java】

    比较排序与非比较排序的对比 常见的快速排序.归并排序.堆排序.冒泡排序等属于比较排序.在排序的最终结果里,元素之间的次序依赖于它们之间的比较.每个数都必须和其他数进行比较,才能确定自己的位置.在冒泡排 ...