Github中进行fork后,原仓库更新了如何与原仓库同步
我们经常在Github中Fork别人优秀的项目(在自己的GitHub下面生成一个repository),如果原仓库作者或组织更新仓库,此时你Fork的项目并不会更新,如果我们想要更新操作,该如何操作?在Gitee上面操作比较便捷,有一个pull按钮。
这里有两种方式:
1. 在GitHub上面直接发起pull request;
2. 在本地仓库使用命令行操作;
下面就这两种方式进行介绍:
方式一:在GitHub上面直接发起pull request
这个方式适合新手,对git命令和原理不是很清楚的。按照下面的步骤进行操作,就拿spring-boot项目的Fork为例!
打开fork 过来的项目如下所示:

点击new pull request

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

当选择完后会变成下图:

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

就会出现变更数据:

点击create pull request

进行数据的合并:

最后合并:

到此就完成了:


方式二:在本地仓库使用命令行操作;
该方式应该是使用的比较多的方法,因为在本地一般都会有一个仓库的。
参考文档:
问题场景:
新公司要求所有的代码提交都要先通过自己的库提交到主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后,原仓库更新了如何与原仓库同步的更多相关文章
- GitHub中Fork来的仓库如何进行双向更新
一.做点贡献 想对别人的某个仓库"做点贡献"怎么办? 1. Fork该仓库 首先Fork该仓库,本文以git-learn这个仓库为例 这样自己的账号下就会出现这样一个仓库 2. C ...
- 学习Git的一点心得以及如何把本地修改、删除的代码上传到github中
一:学习Github的资料如下:https://git.oschina.net/progit/ 这是一个学习Git的中文网站,如果诸位能够静下心来阅读,不要求阅读太多,只需要阅读前三章,就可以掌握Gi ...
- Git进行fork后如何与原仓库同步
在进行Git协同开发的时候,往往会去fork一个仓库到自己的Git中,过一段时间以后,原仓库可能会有各种提交以及修改,很可惜,Git本身并没有自动进行同步的机制,这个需要手动去执行.name如何进行自 ...
- 在 github 中新建仓库后,如何上传文件到这个仓库里面。
在 github 中新建仓库后,如何上传文件到这个仓库里面. libin@hglibin MINGW64 /e/github.io (master) $ git remote libin@hglibi ...
- gitlab或github下fork后如何同步源的新更新内容?
两种方式: 项目 fetch 到本地,通过命令行的方式 merge 懒人方法,只用 Github ,不用命令行 1.项目 fetch 到本地,通过命令行的方式 merge 提示:跟上游仓库同步代码之前 ...
- github中的watch、star、fork的作用
[转自:http://www.jianshu.com/p/6c366b53ea41] 在每个 github 项目的右上角,都有三个按钮,分别是 watch.star.fork,但是有些刚开始使用 gi ...
- 【github&&git】1、github中的watch、star、fork的作用
[转自:http://www.jianshu.com/p/6c366b53ea41] 在每个 github 项目的右上角,都有三个按钮,分别是 watch.star.fork,但是有些刚开始使用 gi ...
- 如何用好 github 中的 watch、star、fork
http://www.jianshu.com/p/6c366b53ea41 https://www.zhihu.com/question/20431718 在每个 github 项目的右上角,都有三个 ...
- github fork后的pull和保持同步
前言 对github上的某个项目贡献自己的修改,但自己可能并没有那个仓库的权限,那要如何操作呢?git的机制和svn还是有些区别的,本文做些记录. 思路1 clone项目到本地,有修改之后,直接提交到 ...
随机推荐
- Kong 系列【六】添加插件---ip-restriction之黑白名单
写在前边 本地postMan请求http://192.168.130.131:8000/test-route,可以正常访问,本地IP:192.168.130.1同样在虚拟机环境192.168.130. ...
- 特殊符号unicode编码
包括箭头类.基本形状类.货币类.数学类.音乐符号类.对错类.星星类.星座类.国际象棋类.扑克牌类.希腊字母.十字类.法律符号.标点符号,详情见以下网址:http://caibaojian.com/un ...
- 建立基于docker的编译环境
如果我们要在一台开发主机上搭一个编译环境,我们需要安装一堆依赖库和编译工具.如果我们有多个不同的项目同时进行,这些项目的编译工具和依赖库又都不一样,如果我们把这些东西全都塞到一台机器里,会不会有冲突呢 ...
- 清北学堂—2020.1提高储备营—Day 3(图论初步(二))
qbxt Day 3 --2020.1.19 济南 主讲:李奥 目录一览 1.图论(kruskal算法,最短路径算法,拓扑排序) 总知识点:图论 一.kruskal算法 1.目的:求图的最小生成树 2 ...
- docker搭建环境积累
weblogic12搭建 sudo docker pull ismaleiva90/weblogic12 sudo docker run -d -p : -p : ismaleiva90/weblog ...
- MyBatis mapper文件中使用常量
MyBatis mapper文件中使用常量 Java 开发中会经常写一些静态常量和静态方法,但是我们在写sql语句的时候会经常用到判断是否等于 //静态类 public class CommonCod ...
- kali安装mongodb
kali安装mongodb 1. 从官网下载需要的安装包 官网下载地址:https://www.mongodb.com/download-center/community 下载完后可以直接用xshel ...
- 剑指offer-面试题14-剪绳子-动态规划法
/* 题目: 给定一个长度为n的绳子,把绳子剪为m段,(n>1,m>1) 求各段绳子乘积的最大值. */ /* 思路: 动态规划. f(n)=max(f(1)*f(n-1),f(2)*f( ...
- 二分类模型之logistic
liner classifiers 逻辑回归用在2分类问题上居多.它是一个非线性的回归模型,其最大的好处恰恰是可以解决二元类问题,目前在金融行业,基本都是使用Logistic回归来预判一个用户是否为好 ...
- java流程控制结构
一.流程控制分三类 1. 顺序结构 - 程序是从上往下,从左往右执行 2. 选择结构(判断结构) - if语句 A. if(关系表达式){语句体} - 执行流程:成立就执行语句体,不成立就不执行 B. ...