Github提交PullRequest工作流程:

以Kubernetes为例

1.   Fork Kubernetes到自己的Github目录

访问:https://github.com/kubernetes/kubernetes

点击Fork,就可以在自己的Github目录下找到kubernetes这个项目了。

这里以https://github.com/edisonxiang/kubernetes为例。

2.   下载代码到本地工作目录

git clone https://github.com/edisonxiang/kubernetes.git

3.   设置代码的UpStream原始目录

cd kubernetes

git remote add upstream https://github.com/kubernetes/kubernetes.git

# Never push to upstream master
git remote set-url --push upstream no_push

# Confirm that your remotes make sense
git remote -v

4.   在本地获取最新的UpStream版本

cd kubernetes

git fetch upstream

git checkout master

git rebase upstream/master

5.   分支新branch并提交修改(类似OpenStack社区)

cd kubernetes

# Add new branch myfeature

git checkout -b myfeature

# Add Commit Message File

vi .git/message

# Add User Email and User Name

git config --global user.email "xiang.edison@gmail.com"

git config --global user.name "edisonxiang"

# Add or Modify files in kubernetes

......

# 提交到Git本地

git add .

# 完成Commit

添加:git commit -a -F .git/message  

修改:git commit --amend -a -F .git/message

修改:git commit -m "Modify some thing"

# 输入Github用户名和密码提交本地的修改到自己的Github项目中

git push -f https://github.com/edisonxiang/kubernetes myfeature

# 更新本地代码到个人仓库

git push origin master

  # 删除个人仓库的分支

  git push origin :myfeature

  # Rebase未合入的PR到个人仓库

  git fetch upstream pull/56136/head:BRANCHNAME

  # 有时需要将琐碎的多个commit结合起来形成这一个需求的完整commit。

  # 这时就需要使用git squash来整理压缩message。

  git log 查看下日志,并判断需要将多少个日志合并

  git rebase -i HEAD~6 把顶部的六个版本聚到一起进入编辑页面

  把需要压缩的日志前面的pick都改为s(squash的缩写)

  注意必须保留一个pick,如果将所有的pick都改为了s那就没有合并的载体了就会报如下错误

  依次输入CTRL+X Y ENTER三个命令完成编辑。

  最后Git Push orgin branchname

# Cancel current local changes

  git checkout .

  git checkout localfile

6.   访问自己的Github项目创建Pull Request

访问自己的Github地址:https://github.com/edisonxiang/kubernetes

在新上传的Branch上,点击Compare & Pull Request按钮创建一个Pull Requst

最后在https://github.com/kubernetes/kubernetes/pulls就可以找到刚刚提交的Pull Request。

Github提交PullRequest的更多相关文章

  1. github提交代码时,报permission denied publickey

    在像github提交代码时,报permission denied publickey. 查找了一下,可能是因为github的key失效了. 按照以下步骤,重新生成key. ssh-keygen 一路默 ...

  2. 代码规范、GitHub提交源码的标准 答题人-杨宇杰

    1.格式与命名规范1.1 缩进 使用Tab缩进,而不是空格键1.2 换行 每行120字符 if,for,while语句只有单句时,如果该句可能引起阅读混淆,需要用" {"和&quo ...

  3. 详细介绍如何在win7下首次实现通过Git bash向Github提交项目

    详细介绍如何在win7下首次实现通过Git bash向Github提交项目 引自:http://jingpin.jikexueyuan.com/article/35944.html 作者: wddoe ...

  4. github 提交报403 forbidden的错误解决

    github 提交报403 forbidden的错误解决 $ git push error: The requested URL returned error: 403 Forbidden while ...

  5. 向GitHub 提交你的源代码

    之前的这篇文章「Git入门篇」相信大家都已经对 Git 的基本操作熟悉了,但是这篇文章只介绍了对本地 Git 仓库的基本操作,今天我就来介绍下如何跟远程仓库一起协作,教你们向 GitHub 上提交你们 ...

  6. 使用Android Studio向GitHub提交代码

    使用Android Studio向GitHub提交代码 在GitHub上创建一个仓库 填写仓库名称.描述.类型(公有.私有)等信息,点击创建 到此,成功创建了我们的仓库,并且初始化创建了README. ...

  7. 向Github提交代码时遇到的一些问题

    今天分享一下我的一些小经验,那就是向github提交我们的代码.之前一直是直接使用的浏览器完成的代码的下载任务,没有使用过客户端,为了让自己在工作之前熟练使用GitHub,所以就有了下面的这篇博文了. ...

  8. GitHub 系列之「向GitHub 提交代码」

    1.SSH 你拥有了一个 GitHub 账号之后,就可以自由的 clone 或者下载其他项目,也可以创建自己的项目,但是你没法提交代码.仔细想想也知道,肯定不可能随意就能提交代码的,如果随意可以提交代 ...

  9. Vue.js示例:GitHub提交(watch数据,created钩子,filters过滤); 网格组件(功能:1.检索,2排序);

    GitHub提交 codePen:   https://codepen.io/chentianwei411/pen/wEVPZo 注意:频繁看案例,可能会被限制. 重点: 表单输入绑定, 单选按钮的使 ...

随机推荐

  1. Android学习笔记——文件路径、内容Uri学习笔记[转]

    一.URI 通用资源标志符(Universal Resource Identifier, 简称"URI"). Uri代表要操作的数据,Android上可用的每种资源 - 图像.视频 ...

  2. c#代码片段新建(sinppet)

    在c#里面我们经常用到 1.if 然后按2下Tab,出来下面一段代码 if (true) { } 2.propfull private int myVar; public int MyProperty ...

  3. BlockingCollection 集合随记

    BlockingCollection 集合是一个并发安全的集合,而且设计用来实现类似于消息队列的功能,生产者.消费者模式. static void Main(string[] args) { Bloc ...

  4. 《Beginning Java 7》 - 6 - 深入理解 String

    public final class String implements Serializable, Comparable<String>, CharSequence 所以: 1. Str ...

  5. 来到cnblong dayone

    以前懒得做笔记,csdn上有些小随笔,但是感觉csdn上的广告和积分下载越来越无法忍受了.现在转到cnblog.希望以后能够多写一些随笔吧.也算是一种坚持.听说90天可以养成一种习惯,那么就从现在开始 ...

  6. leetcode 39 组合总和 JAVA

    题目: 给定一个无重复元素的数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合. candidates 中的数字可以无限制 ...

  7. Selenium爬取元素下子元素方法

    Selenium提供了一下方法来定义一个页面中的元素: find_element_by_id find_element_by_name find_element_by_xpath find_eleme ...

  8. kvm虚拟机磁盘文件读取小结

    kvm虚拟机磁盘挂载还真不是一帆风顺的.xen虚拟化默认就raw格式的磁盘,可以直接挂载,kvm如果采用raw也可以直接挂载,与xen磁盘挂载方式一致. 1.kvm虚拟化相比xen虚拟化来说,工具与方 ...

  9. kali linux之应用层Dos

    应用层服务漏洞: 服务代码存在漏洞,遇异常提交数据时程序崩溃 应用处理大量并发请求能力有限,被拒绝的是应用或OS 缓冲区溢出漏洞: 向目标函数随机提交数据,特定情况下数据覆盖临近寄存器或内存 影响:远 ...

  10. PL/SQL数据开发那点事

    PL/SQL开发那点事----->PL/SQL开发过程中异常处理 用户编写的PL/SQL块在执行过程中不可避免地要发生一些错误. 这里涉及的错误并不是由于程序的语法错误引起的,而是因为处理的数据 ...