`
thierry.xing
  • 浏览: 664400 次
  • 性别: Icon_minigender_1
  • 来自: 北京
博客专栏
580fa9c1-4a0c-3f40-a55a-c9256ce73302
Sencha Touch中...
浏览量:0
社区版块
存档分类
最新评论

Fork一个Github仓库然后Pull Request的一波三折

 
阅读更多
 Fastlane是一组工具套件,旨在实现iOS应用发布流程的自动化,并且提供“一个运行良好的持续部署流程,我们公司的iOS项目持续集成和持续发布都依赖这个框架,由于整个过程高度自动化,所以帮我们节省了很多时间。
 
自己也写过一个Fastlane的action,用于执行私有库pod lib lint命令,因为自己用了一段时间,感觉还不错,所以想发布到Fastlane的master分支上分享给大家,于是Fork了一个Fastlane的仓库,
新建了一个feature分支add_action_pod_lib_lint准备做Pull Request。
 
首先阅读了Fastlane的Pull Request规则,需要将此分支的所有Commit通过Rebase命令合并成一个。
于是按如下步骤执行:
(1)git rebase -i HEAD~2(这个2代表Pick最近的两个Commit)
(2)在Vim里编辑,然后选择sqaush方式,将前一个Commit合并到当前选中的Commit
(3)继续在Vim里编辑合并后的Commit信息
(4)合并成功,然后git push -ff覆盖远端分支的提交信息
 
 
接下来,提交Pull Request,提交后发现Github的CI做的相当好,分两步进行:
(1)使用一个叫做Hound-Bot的服务Check你的代码语法规范(大概看了一下,Hound服务对于开源项目是免费的,很棒)
(2)使用Circle CI跑一遍单元测试
 
执行(1)的过程中发现了2个Violation,基本都是一些格式上的错误和语法上不太严谨的地方,比如:文件的最后一行要给一个空行。
看了一下没什么大不了的,于是直接忽略了。
执行(2)之后,发现test没有通过,登到Circle Ci上发现居然给出的结果是:
Your build ran 1733 tests in RSpec with 0 failures
 
感觉很奇怪啊,明明全部通过了啊,不明白错误究竟在什么地方,难道Circle CI这么智能,发现我的单元测试的Case并没有覆盖所有场景?(因为很简单,所以犯懒只写了两个Case)
于是补全了一下测试,继续重复之前的步骤,结果依然是不通过,彻底郁闷了!于是仔细检查了一下Circle CI的每一个测试步骤和Console中打印的信息,终于在一个很不起眼的地方发现了问题:
fastlane: Command failed with status (1): [bundle exec rubocop...] rake aborted!
 
晕,原来Circle CI也会使用Rubocop进行静态检查,当然也包括语法格式规范之类的,看来不应该忽略Hound-Bot的警告啊(突然想起一个程序员和警告的梗)。
 
最后将所有语法全部规范化,再次Pull Request,这回终于OK了。
All checks have passed
2 successful checks
Details ci/circleci — Your tests passed on CircleCI!
 hound — No violations found. Woof!
 
This branch has no conflicts with the base branch
Only those with write access to this repository can merge pull requests.
 
接下来就等待排队Merge到Master分支了 
1
4
分享到:
评论

相关推荐

    给 Fork me on GitHub 换个风格.zip

    给 Fork me on GitHub 换个风格.zip,A fresher "Fork me on GitHub" callout.

    github个人使用笔记

    1. 创建新仓库:在 Github 网站 new 一个仓库,然后 clone 到本地 2. 将原项目的修改同步到自己的分支:`git fetch`、`git merge`、`git push` 总结 Github 的个人使用笔记可以总结为以下几个步骤: 1. 完整流程...

    获取github中用户star和fork总数的小脚本

    该脚本是本人写的一个小脚本,只要有对方的用户名可以方便快捷获取该账号在github中的start和fork数,欢迎大家下载;

    本仓库收集史上最坑爹的代码片段,欢迎大家通过 Fork+Pull Request 参与

    当你对Fork后的项目进行修改并完成了一定的功能或者修复了问题,你可以发起一个Pull Request,请求原项目的维护者将你的改动合并到主项目中。这是一种常见的开源协作模式,有助于社区的共享和进步。 接着,我们来看...

    前端开源库-pull-request

    在前端开发领域,开源库是...总之,"前端开源库-pull-request"是一个学习和实践GitHub API以及前端协作开发流程的好资源。熟悉这些操作不仅能够提升个人开发技能,还能更好地参与到开源社区,为项目贡献自己的力量。

    EZLippi.github.io, 这是我的个人网站的源码,欢迎fork。.zip

    ”表明这是一个个人网站的源代码,发布在GitHub上,并鼓励其他开发者进行fork,即复制并创建自己的副本。这通常意味着该网站是基于开源软件构建的,允许社区参与改进和贡献。 描述中的内容与标题相同,再次强调了这...

    基于Python的repo工具二次开发设计源码,支持Gitee Fork+PullRequest流程

    本项目为Repo工具的二次开发设计源码,旨在增强其功能,实现Gitee Fork及PullRequest流程的支持。源码总量为88个文件,其中...该工具适用于批量管理多仓库工程,特别适用于需要Gitee Fork和PullRequest功能的开发环境。

    GitHub提交说明1

    5. 在浏览器中打开你的fork仓库页面,找到"New pull request"按钮,创建一个新的PR。 6. 检查并填写PR的相关信息,包括PR标题、描述,确保清楚地说明了你的改动。 7. 提交PR后,原仓库的所有者和其他贡献者可以查看...

    forkorg:fork 一个 github 组织的所有 repos

    fork 一个组织的所有 repos 先决条件 需要环境变量FORKORG_GITHUB_TOKEN 。 您可以将它添加到您的~/.env文件中,因为 forkorg 使用 安装 $ npm install forkorg --global 用法 # fork all repos of an org $ ...

    使用github多人协作开发1

    GitHub 进行多人协作开发的过程,包括登录 Git 账号、建立本机电脑和 GitHub 远程仓库的连接、fork 别人仓库、clone 到本地、通过 Git 修改编辑、更新内容、将本地仓库更新至远程仓库、发送 pull request 给作者等...

    github的使用入门

    - **示例:** 假设有一个名为“知乎首页”的项目,你可以 Fork 它,从而获得一个属于你自己的副本,可以在副本中进行任何改动而不影响原项目。 **3. Branch(分支):** - **定义:** 在 Fork 之后的项目中,你可以...

    github 使用指南 官方中文

    1. **仓库(Repository)**:在 GitHub 上,你的项目就是一个仓库,它包含了所有的源代码、版本历史、问题追踪以及项目文档。 2. **分支(Branch)**:仓库中的工作副本,允许你在不影响主分支的情况下进行开发和实验。...

    基于spring boot的仓库物流管理系统(springboot+mysql+layui前端).zip

    【资源说明】 1、该资源包括项目的全部源码,下载可以直接使用! 2、本项目适合作为计算机、数学、电子信息等专业的课程设计、期末大作业和毕设项目,作为参考资料...欢迎Fork,你也可以通过Pull Request参与编辑.zip

    github使用教程

    例如,假设你想贡献到名为“mass Framework”的项目,找到该项目后,点击页面上方的"Fork"按钮,这样就创建了一个该项目的副本,成为你自己的仓库。 接下来,你可以在自己的副本中进行修改。在决定修改前,要确保你...

    Fork安装包,Git可视化操作工具

    克隆仓库: 打开 Fork,点击 "Clone"(克隆)按钮。...在拉取请求中,选择源分支和目标分支,然后添加描述和标题,最后点击 "Create Pull Request"(创建拉取请求)按钮。 这只是 Fork 的基本用法介绍。

    JavaScript_一个项目,旨在帮助您熟悉GitHub上的开源贡献工作流程.zip

    总的来说,这个JavaScript项目涵盖了GitHub的基本工作流程,包括Fork、Commit、Merge和Pull Request,这些都是参与开源社区和协作开发的重要技能。通过实践,你不仅能提升JavaScript编程能力,还能学习到如何有效且...

    代码复用与贡献的艺术:GitHub Forks的全面指南

    完成后,将更改推送到Fork仓库,并创建Pull Request贡献回原项目。 - **实践建议**:在使用GitHub Forks时,建议定期检查原始项目的更新情况,并及时同步到自己的Fork中,确保代码的一致性和稳定性。同时,在提交...

    2023 预测模型.rar

    Fork 本仓库 新建 Feat_xxx 分支 提交代码 新建 Pull Request 2023 预测模型 参与贡献 Fork 本仓库 新建 Feat_xxx 分支 提交代码 新建 Pull Request 2023 预测模型 参与贡献 Fork 本仓库 新建 Feat_xxx 分支 提交...

    Git和GitHub教程

    GitHub的亮点之一是Pull Request机制,允许开发者提出代码更改建议,然后由项目维护者审阅和合并。此外,GitHub Issues功能可用来追踪项目的任务、错误和讨论,而Markdown支持则让编写文档变得简单。 Git和GitHub...

    github pull最新代码实现方法

    - 提交Pull Request:在GitHub界面上,提交Pull Request是一个将你的更改分享给原始项目的开发者的正式请求。 7. 安全性的考量 - 在直接使用`git pull`命令时,需要谨慎,因为它会直接合并远程分支到当前分支。...

Global site tag (gtag.js) - Google Analytics