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