我是如何在 GitHub 上提交 PR 的

GitHub 大家都知道,很多公司的开源项目都会放在这个地方。

看到那些大牛的代码,你是否也想过?

  • 我能不能学习他们
  • 我能不能提交一些自己的代码
  • 我的代码能不能满足要求
  • 我能不能得到他们的认可

本篇将分享这段时间自己提交 PR 的一些经验,也是记录自己踩过的坑。

image

默许阅读人群了解 GitHub ,了解基本 git 命令。

这里以 ant-design 为例。

1. 准备

1.1 Fork 项目

image

点击 Fork 后,会自动生成以自己名称命名的项目,如图:

image

因为我这个是很早之前的,所以可以看到我项目的 master 已经拉下原项目的 master 152个 commits 了。不用担心,后面会教你怎么处理。

1.2 Clone 到本地

image
# 在你想存放项目的文件夹下执行
git clone https://github.com/xrkffgg/ant-design.git

cd ant-design

1.3 设置 remote

如果你这是一次性,并且很快就提交了,可以忽略此步,但不建议。

  • 添加
git remote add ant https://github.com/ant-design/ant-design.git
  • 查看

如果操作正确,执行 git remote -v,你将看到

ant https://github.com/ant-design/ant-design.git (fetch)
ant https://github.com/ant-design/ant-design.git (push)
origin  https://github.com/xrkffgg/ant-design.git (fetch)
origin  https://github.com/xrkffgg/ant-design.git (push)

1.4 安装依赖

yarn 
# or
npm i 

1.5 启动项目

有的项目命令不一定是 start ,具体可以去 package.json 中查看。

yarn start
# or
npm run start

2. 开发

这里就是尽情的来 Coding。

很多项目都有一些开发规范,建议开发前可以去阅读以下,更规范的代码有助于 PR 的通过。

同时在开发完成后,建议运行 项目中的 test 来检查是否满足要求(避免 PR 中 test 失败)

2.1 提交

这里列出几个自己的风格。

  • 先新建远程,再直接提交

GitHub 新建分支的操作为:在某个分支下,点击 Branch,输入你想新建的名称,比如 test,之后会自动以你所在分支为基准新建分支。

本地分支直接使用 test 分支开发,这样避免 master 被污染。

  • 本地开发完成,推送到远端其他分支
git add xx
git commit ""
git push origin master:test

这样会导致自己的本地 master 多了 commit 。

add commit 的操作建议使用工具(IDE 集成或插件)来执行,这样可以检查一下提交的代码。

2.2 提交规范

commit 信息一定要写的规范。可参考 commit 规范

3. PR

3.1 新建

当你提交到远程时,点开你的 项目主页,会自动显示出一个 Pull Request 的按钮。

如果由于网络原因没刷新出来,可自己直接点击 分支旁的 New pull request,或去源项目新建 PR。

3.2 填写

每个项目都会对自己的 PR,有一定的要求,请仔细阅读规范填写。

3.3 后续

当你做完这些操作后,就可以等着项目维护人员来进行代码审核和 PR 操作啦。

如果 PR merge 后,会给出一个 删除你项目中分支的操作,可直接点击。

4. 情景

这里列出一些我遇到的情景和解决办法。

4.1 clone 指定分支

git clone - b v1.0 http://xxx.git

4.2 更新 fork 工程

# 1. 添加源分支
git remote add xxx git@github.com:author/repos.git

git remote -v 查看

# 2. fetch 源仓库代码的最新版本到本地
git fetch xxx

# 3. 合并两个版本的代码
git merge xxx/master
# or
git rebase xxx/master

# 4. 更新到GitHub的fork上
git push origin master

4.3 恢复远端 commit

# 1. 查看 commit 历史
git reflog

# 2. 恢复到指定 commit 
git reset --soft HEAD~1

# 3. commit 处理

# 4. push 远端
git push origin master --force

4.4 PR rebase

# 1. master 更新到最新

# 2. rebase
git rebase master

# 3. push
git push --force

4.5 远程新建分支如何开发

git fetch
git checkout -t origin/xxx

5 后 记

感谢支持。

若不足之处,欢迎大家指出,共勉。

如果觉得不错,记得 点赞,谢谢大家 ʚ💖ɞ

欢迎关注。

5.1 原文地址

https://xrkffgg.github.io/Knotes/blog/16.html

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,456评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,370评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,337评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,583评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,596评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,572评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,936评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,595评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,850评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,601评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,685评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,371评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,951评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,934评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,167评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,636评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,411评论 2 342

推荐阅读更多精彩内容

  • 1.GitHub 有什么用 学习优秀的开源项目开源社区一直有一句流行的话叫「不要重复发明轮子」,某种意义上正是因为...
    Clemente阅读 1,422评论 1 14
  • Git 使用规范 一、user.name 配置 Git 的 user.name 配置一定要使用自己的中文名称。命令...
    苏大发阅读 1,080评论 0 2
  • 前言 Git使用教程 Git是什么 Git是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。 ...
    90后的思维阅读 894评论 0 0
  • 第一部分是文档,为了日后查看方便放到了前边[可能敲错了,详见阮一峰老师的文章]http://www.ruanyif...
    白璞1024阅读 1,013评论 0 49
  • 今日探讨的是人类对动物的驯服和地球轴线的影响。世界上有两种动物,一种是被驯服的,一种是没被驯服的。驯服的动物为人们...
    Mistdxy阅读 242评论 0 1