下面我们请出李四,演示一下使用 Fork 和 Pull request 。李四觉得我们的项目也挺不错,不过他想基于我们的项目去开发他自己的版本。这个时候,李四可以先把项目 Fork 到自己帐户下面。
李四打开我们的项目页面以点,点击 Fork ... 这样会直接把项目版本库复制一份到李四的帐户下面。
然后李四可以再把在他帐户下面的 movietalk 这个版本库,克隆到本地设备上,去继续开发 ...
找到版本库的地址 ... 复制一下 ... 回到命令行 .. 先回到桌面上 ...
git clone xxx movietalk_li
这样会把在李四帐户下面的 movietalk 版本库克隆到桌面上的 movietalk_li 这个目录的下面 ...
进入到这个项目 ...
修改配置
因为我们是在同一个设备上做的演示,并且之前我们配置了 git 在全局范围的设置,所以默认情况下,提交都是以王皓的身份去做的 ... 为了演示一下,我们可以配置一下项目级别的配置,也就是去单独为 movietalk_li 这个版本库去配置 ..
git config user.name '李四'
git config user.email 'lisi@ninghao.net'
这样在 movietalk_li 这个版本库里的提交,就会使用李四的身份了。
继续开发
李四继续去开发这个项目 .. 比如,李四要给项目添加一个 README.md ,md 表示 markdown ,是一种标记的语言,github 会自动去在项目根目录下去找这个文件,然后把它转换成 HTML 格式,显示在项目页面的下面。
README.md 里的内容一般是关于项目的介绍,还有使用说明 ...
vim README.md
输入点内容 ... 两个 # 号表示后面的文字使用二级段落标题 ...
* 号,可以转换成无序列表 ...
保存一下 ... 然后去提交这个修改 ...
git add .
git commit -m '添加了 README.md 文件'
下面,李四要把这个提交推送到他自己的远程版本库上去 ... 这里我们可以先清空一下保存的 github 的登录信息。这样在推送的时候,可以使用李四在 github 上的帐户。
Mac 用户可以打开 Keychain ... 搜索一下 github ... 然后删除这两个选项 ...
再回到命令行 ..
git push origin master
输入李四在 github 上面的用户名 ... 再输入密码 ...
完成以后,会把李四新做的提交推送到他的远程版本库里面 ...
打开李四的远程版本库 ....
你会看到,最后一次更新是来自他自己 ....