Back

社区贡献流程

github 上有许多优秀的开源社区,对于时间充裕的学生党来说,平时在社区做做贡献是个不错的选择。下面以 Kubernetes 社区为例(刚开始选择做一些简单的翻译贡献,选择 Kubernetes/website ):

1. fork 想要做贡献的项目

在 GitHub 进入 Kubernetes/website 项目中,点击右上角的 Fork 按钮,此时就在你的个人仓库里生成了一个 yourname/website 的项目。

2. Clone 刚刚 Fork 的项目

做贡献之前,必须得把项目下载到本地。进入个人的 GitHub 主页找到刚刚 Fork 的项目,点击右上角的 Clone 按钮。
此处有三种下载方式,我选择中间的 SSH 方式。复制好下方的链接进入 cmd 使用 git clone 命令(我打算把项目下载到 D 盘):
$   cd d:
$   git clone git@github.com:ldsdsy/website.gitf

//耐心等待,第一次 clone 需要一些时间,完成后 D 盘里就会出现 website 的文件夹。

3.设置克隆好的项目

在 cmd 中进入克隆过来的项目文件夹,将原来项目的 URL 添加到你的本地代码仓库,这样你就可以随时从原来的项目 pull 最新的修改(此处用 upstream 作为远程仓库的名字,这是 GitHub 的风格,但是你可以用任何名字。):

$   git remote add upstream git@github.com:kubernetes/website.git
现在远程仓库列表是这样的:

$   git remote -v
origin  git@github.com:ldsdsy/website.git (fetch)
origin  git@github.com:ldsdsy/website.git (push)
upstream        git@github.com:kubernetes/website.git (fetch)
upstream        git@github.com:kubernetes/website.git (push)
以后定期更新时按如下命令顺序运行:

$   cd D:\website
$   git checkout master
$   git fetch upstream
$   git rebase upstream/master
$   git push origin master

4.创建一个分支

在做翻译之前,先要创建一个本地分支,这是将要开展工作的地方。用以下命令(这会创建一个名为 translate1 的新分支,而且在本地仓库里,处于激活状态。你最好用一个可以描述你要做什么的分支名字。):

$   git checkout -b translate1
查看当前处于哪一个分支(* 表示当前分支):

$   git branch
    master
  * translate1

5.开展工作

可采用 vscode 等编辑器打开 website 文件夹,在 en 目录里找到一个还没有翻译的文件,然后在 zh 目录下新建一个文件名一致的对应文件,按照原文的格式进行翻译。

6.提起 pull request

当翻译完成后,需要把修改过的新内容 push 到个人的在 GitHub 上:

$   git branch  //确定当前在 translate1 上
$   git status  //确定自己没有误操作其他的无关的文件
$   git commit -m "translate 2020-10-01"    
$   git push origin translate1
现在用浏览器打开个人的 GitHub, 点开 fork 的项目,便会在项目顶上看到一个 compare & pull request 的绿色按钮,点击用来提起 pull request。之后,会看到一个页面,显示你的分支和原来的分支之间不同的部分。确定无误后,点击确定。

7.等待审查

之后会有专门的审查人员对你的提交进行核查,合格后便会收到同意合并的邮件,或是收到建议修改的邮件,或是被直接拒绝。
!!!第一次做贡献的话,此处可能会遇到签署 CLA(Contribution License Agreement) 的问题,根据提示签署 CLA 即可(TITLE:student)

8.删除分支

不管结果如何,最后就可以删除一开始创建的工作分支(不删也问题不大,不是强制性的):

//删除本地仓库里的分支:

$   git branch -D translate1 

//删除 GitHub 上的分支:

$   git push origin --delete translate1
Licensed under CC BY-NC-SA 4.0
comments powered by Disqus
Built with Hugo
Theme Stack designed by Jimmy