github fork后的pull和保持同步
前言
对github上的某个项目贡献自己的修改,但自己可能并没有那个仓库的权限,那要如何操作呢?git的机制和svn还是有些区别的,本文做些记录。
思路1
clone项目到本地,有修改之后,直接提交到原作者仓库
思路2
forck项目到自己的仓库,然后进行修改,并把修改的内容推送到原作者仓库。
尝试过第一种思路会报权限不足,本篇记录第二种思路
本文示例
原作者仓库地址:https://github.com/mr-kelly/KSFramework
自己Fork后的地址:https://github.com/zhaoqingqing/KSFramework/
操作环境
拉取方式:使用https而非ssh
windows 7 x64
TortoiseGit 2.2.0.0
git version 2.10.0.windows
Fork并Pull给原作者
当自己修复原作者的一些bug之后,希望把这个修改push给原作者。
git重新定位到自己仓库
当使用git clone 远端的项目到本地之后,要如何把这个地址指向自己的仓库呢?又为什么要指向自己仓库呢?
1、指向自己的仓库,自己拥有提交和push权限
2、可以不用重新git clone一份资源下来啦。
通过修改远端,类似于SVN的重新定位,就是修改远端的地址。
我把远端的地址换成是我github地址,并点击确定。

pull request给原作者
1、当把远端地址改成自己的仓库地址之后,就有权限提交了,可以和平时一样进行commit和push
2、推送到自己的远端之后,如果你想把这个修改 pull 给原作者,在网页版可以看到一个 New pull request 的按钮,点击它

3、点击之后,会出现你要推送的修改,查看无误之后,可以点击 “ Create pull request ”

4、接下来在原作者的仓库的 pull request,就会出现你pull的修改,等待原作者通过之后,你的代码就被合并了。

保证fork仓库的同步
上述方法是fork原作者的仓库,而当原作者的代码有更新,我们要如何把作者同步到自己的仓库呢?
添加原作者地址

此步骤用于更新原作者的修改,保证库中的部分代码和原作者一样。
同步原作者的修改到自己仓库
1、使用git pull(拉取)原作者的新修改之后,打开TortoiseGit的同步窗口
2、选择 远端分支,在“将推送的提交”选择要推送的分支
3、点击推送,会自动添加此次的注释,一般都是“Merge xxx”
4、做完以上三步,你就把原作者的修改内容同步到自己的仓库了

更多
直接提交到原作者仓库遇到的问题
如果你在clone之后直接提交到原作者仓库时,报权限不足,那么建议使用fork 后 push的方式,即本文所使用的方式
git.exe push -v --progress "origin" master:master remote: Permission to mr-kelly/KSFramework.git denied to zhaoqingqing.
fatal: unable to access 'https://mr-kelly@github.com/mr-kelly/KSFramework.git/': The requested URL returned error: 403
Pushing to https://mr-kelly@github.com/mr-kelly/KSFramework.git
参考资料:http://blog.csdn.net/huutu/article/details/51831647
关闭Pull Request
如果 pull的代码有问题,或者想修改,可以对pull request进行关闭
1、点击Pull requests,找到自己要close的那条记录
2、点击记录进入详细页面,拉到底部,点击 Close pull request

github fork后的pull和保持同步的更多相关文章
- git fork后提交pull request到原作者,别人的pull request我们要怎样merge融合
首先要记住,pull request 不是随便提交的,这是建立在你对原作者的项目有fork,并对项目中的代码有修改,并提交到了你的GitHub上,才能进行下面的操作. 若不知怎样fork项目,请看我的 ...
- Github进行fork后如何与原仓库同步
https://blog.csdn.net/myuantao3286286/article/details/50477139
- Git进行fork后如何与原仓库同步
在进行Git协同开发的时候,往往会去fork一个仓库到自己的Git中,过一段时间以后,原仓库可能会有各种提交以及修改,很可惜,Git本身并没有自动进行同步的机制,这个需要手动去执行.name如何进行自 ...
- GitHub fork 合作开发 - 快速实现版
目录 一 预备条件 二 fork项目 三 将项目clone到本地 四 push代码到自己的仓库 五 通过pull request提交代码 六 通过本地配置upstream来同步更新主repo的内容 七 ...
- Github中进行fork后,原仓库更新了如何与原仓库同步
我们经常在Github中Fork别人优秀的项目(在自己的GitHub下面生成一个repository),如果原仓库作者或组织更新仓库,此时你Fork的项目并不会更新,如果我们想要更新操作,该如何操作? ...
- Github fork其他项目的分支与主干保持同步
Fork一个Repo Fork是一个复制的操作,当你Fork一个项目之后,你就有了在原项目的基础之上进行修改和扩展的权限. 通常情况下,Fork操作用于参与别人的项目(成为项目中的一员),或者以别人的 ...
- github如何实现fork的项目与原项目同步
refer to https://www.jianshu.com/p/fede3333205f 作者:hitchc 链接:https://www.jianshu.com/p/fede3333205f ...
- 同步 Github fork 分支
/**************************************************************************** * 同步 Github fork 分支 * ...
- 如何把Github上好的项目pull到本地或者fork到本地(码云仓库同理)?
首先Github账户的注册我就不想再啰嗦了,我想大家都会的. 其次怎么把自己的项目push到自己的Github仓库请参考我的另一篇博客: 如何把自己开发的项目上传到GitHub仓库或者码云仓库? 最后 ...
随机推荐
- fluent-ffmpeg 常用函数
最近项目频繁用到fluent-ffmpeg,将目前使用到的函数进行总结. 首先引入fluent-ffmpeg模块: var ffmpeg = require('fluent-ffmpeg'); 1.函 ...
- 简单使用Git和Github来管理自己的代码和读书笔记
原文链接:http://my.oschina.net/bxxfighting/blog/378196 先注册github.com的账号官方网站: https://github.com/ 注册界面, ...
- TortoiseGIT创建及合并分支
一.创建分支 项目右键 => TortoiseGit(T) => 创建分支,然后右键切换到刚刚创建的分支,新增/修改一个文件,提交分支到远端服务器,推送成功之后分支就创建好了. 二.合并分 ...
- linq to entity常用操作
一.聚合函数查询 ; using (xxxEntities db = new xxxEntities()) { sum = db.userinfo.AsNoTracking().Where(d =&g ...
- 你真的会玩SQL吗?让人晕头转向的三值逻辑
你真的会玩SQL吗?系列目录 你真的会玩SQL吗?之逻辑查询处理阶段 你真的会玩SQL吗?和平大使 内连接.外连接 你真的会玩SQL吗?三范式.数据完整性 你真的会玩SQL吗?查询指定节点及其所有父节 ...
- ASP.NET Core 中文文档 第二章 指南(2)用 Visual Studio 和 ASP.NET Core MVC 创建首个 Web API
原文:Building Your First Web API with ASP.NET Core MVC and Visual Studio 作者:Mike Wasson 和 Rick Anderso ...
- go语言赋值
使用赋值语句可以更新一个变量的值,最简单的赋值语句是将要被赋值的变量放在=的左边,新值的表达式放在=的右边. x = // 命名变量的赋值 *p = true // 通过指针间接赋值 person.n ...
- JavaWeb——tomcat安装及目录介绍
一.web web可以说,就是一套 请求->处理->响应 的流程.客户端使用浏览器(IE.FireFox等),通过网络(Network)连接到服务器上,使用HTTP协议发起请求(Reque ...
- 深入理解JavaScript——闭包
跟很多新手一样我也是初入前端,对闭包的理解花费的时间和精力相当的多.效果也还行,今天我就来根据自己的理解细致的讲一讲闭包,由于是初入学习的时候不免有一些弯路和困惑,我想信这也是很多跟我一样的人会同样遇 ...
- Windows下构建ASP.NET Core+Code First+Docker
背景介绍 本文将会示范如何在Windows系统下基于ASP.NET Core构建跨平台服务,并通过Docker容器运行发布. 首先说一下为什么选择这一套组合: 我本人和我们Code4Thought团队 ...