让更多人知道你——给开源库提交 pr
栏目: JavaScript · 发布时间: 5年前
内容简介:我们经常看到一个开源库会有很多人一起去维护,像看着这么多大牛去维护一个开源库,心里也直挠痒痒,很想自己也能一起去维护开源库。很多人在平时开发中只是用到简单的 git 命令,比如
我们经常看到一个开源库会有很多人一起去维护,像 vue , webpack 就会有很多大牛去维护。
看着这么多大牛去维护一个开源库,心里也直挠痒痒,很想自己也能一起去维护开源库。
很多人在平时开发中只是用到简单的 git 命令,比如 git clone
, git branch
, git checkout -b
, git add
, git commit
, git push
这些命令,其实都只是 git 最基本的操作,有这些基本操作,我们想给开源库提 pr 还差一点。
下面我把我自己平时维护 git 库的经验做一个总结,也算是给一些想给开源库提 pr 同学的一些微小的帮助。
如果有更好的方法,可以评论补充一下,谢谢大家。
具体流程
想给开源库提 pr,第一步肯定是我们要有他们库,并且可以进行开发。接下来我就拿 vue 库做一个示例,看官们可以边看边和我一起操作。
1. fork 开源库
vue 库肯定不可能让我们直接提交,所以我们需要找到 vue 库,fork 到自己的 github 仓库中,然后在自己拷贝的 vue 仓库中操作。
登录 github,在 github 中搜索 vue。
点击 fork 按钮,把开源库 fork 到自己的 github 中。
回到我们自己的 github 中,就可以看到 fork 好的 vue 库了。
2. clone 库到自己本地
我们将 fork 好的仓库克隆到自己本地电脑上,然后进行开发。
克隆到本地:
# 克隆 vue git clone https://github.com/Shiyanping/vue.git # 进入本地 vue 文件夹 cd vue 复制代码
这样你本地就有了 vue 的克隆版本了,后续就可以愉快的开发了。
3. 本地创建分支,进行开发
摩拳擦掌,开始吧,开发之前你要确定好具体开发哪个分支,因为我们拉下来的代码只有默认分支,但是有些开源库是有很多分支的,不同的功能或者不同的版本在不一样的分支上,这个在开发之前要确定好。
如果你只是开发默认分支,可以忽略下面的 开辟我们本地分支
过程,但是开发开源库,肯定避免不了切换不同的分支,还是建议跟着下面的操作执行一下。
开辟我们本地分支:
假设要开发 vue 库中的 weex 分支,这个时候需要借助 origin/weex
分支去开辟一个本地的新分支。 origin/weex
就是自己 github 上的 vue 仓库中 weex 分支。
# 查看具体有哪些分支 git branch -r # 这个时候会将我们本地分支,自己 github 仓库分支都列出来。 # 这里就不截图了,我们找到 origin/weex 分支,切换过去。 git checkout origin/weex # 这里不用管 git 提示,我们只是借助一下这个分支 # 接下来我们使用 origin/weex 分支,开辟一个我们本地的新分支 git checkout -b weex 复制代码
这个时候就有了本地的 weex 分支,来改动点东西,执行一下最熟悉的 git 提交代码的过程。
一顿操作之后,我只是简单改了说明文档,:laughing:。
# 下面这些就不介绍了,大家都知道 git status git add . git commit -m "修改说明文档" git push --set-upstream origin weex 复制代码
这个时候上自己的 github 上就可以看到自己提交的代码和分支了。
这个时候其实可以进行 pr,但是我们不能这么草率,毕竟这是给开源库提 pr,我们要小心翼翼,万一提上去一个审核不通过的,多尴尬。所以还有一些问题需要给大家交代一下。有些看官可能觉得我问题很多,但是这不是为了让大家更潇洒的提 pr 吗,所以有问题还是要说清楚的。
一个开源库,是有很多人一起开发的,我们目前开发 weex 分支,有其他人可能在你 fork 库之后,在你提 pr 之前提交了 weex 分支新修改,但是这个时候你本地库和你 github 仓库里面的代码都是旧的,这个时候你如果将刚才修改的代码提交到远程仓库,就会审核不通过,那上面一顿操作就相当于白瞎了,还丢人。
接下来就说如何解决这个问题。
4. 关联远程仓库,保证代码可以和远程同步
首先来看一下本地仓库有哪些关联的仓库:
# 查看当前关联的仓库 git remote -v 复制代码
因为本地仓库代码是刚拉下来,所以除了自己 github 的仓库以外,没有任何关联的仓库。
这个时候我们要将 vue 远程仓库进行一个关联:
# 进行关联 # git remote add 远程仓库别名 远程仓库地址 git remote add upstream https://github.com/vuejs/vue.git # 执行之后不会有任何提示 # 再次查看本地相关联的远程库 git remote -v 复制代码
这个时候就关联上了 vue 远程仓库。
接下来使用 fetch 命令,把远程仓库最新的代码及分支拉取一下。
# git fetch 关联的别名 git fetch upstream 复制代码
执行之后,我们可以看到把 vue 远程仓库的所有分支代码都拉下来了。
后续我们在修改了某个分支的代码进行提交时,一定要将远端的仓库进行一个合并,我们可以使用下面的命令实现合并:
# git merge 远程仓库的别名/分支名 git merge upstream/weex 复制代码
如果没有改动,我们可以直接进行 pr;如果有改动,我们需要将合并的代码,也提交到我们自己 github 的仓库中,这样我们本地代码、自己远程仓库代码就和开源库 vue 原始仓库代码进行了同步。
记得在合并远程仓库代码的时候一定要先 fetch。
git fetch upstream git merge upstream/分支 复制代码
5. 提交 pr
经过同步远程代码和提交自己修改的代码之后,我们就可以提交 pr 了,具体操作如下:
上自己的 github 上,如果是第一次提交非默认分支的代码,我们可以直接点击下图中的 Compare & pull request
按钮。
如果是提交已经存在的分支,比如默认分支,或者某个二次提交的分支,这个时候我们可以直接点击 New pull request
按钮。
不管是上面那种方式,都会跳转到提交 pr 的界面:
前面的红框代表了要给哪个开源库哪个分支提交 pr,后面这个红框代表你要将哪个项目哪个分支给提交上去。
一定要选择对,别提交错了,提交错了一般人也不会给你合并的。
最后点击 Create pull request
按钮。
这样就大功告成了,等着开源库的作者给你合并 pr 吧,初次提交 pr 的喜悦还是很棒的。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- Zephyr Project RTOS - 开源实时操作系统的首次功能安全认证提交
- 优步Uber向Apache软件基金会提交了一个开源大数据库Hudi
- Git提交错误时如何删除Git提交记录
- 分布式系统 - 两段式提交(2PC)和三段式提交(3PC)
- 减半前,比特币开发者代码提交数创历史新高:4月累计提交510次
- 提交任务到Spark
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。