因为我 fork 了 Mojo 的项目,这样才学会了如何使用 github. 现在分享一些经验给大家。希望大家也能参与到开源的项目来。
1. 提交自己本地项目的修改到 github 的库中.
如果你自己的项目,你自己 clone 到本地后, 进行了一系列的修改, 然后你想提交, 大多最方便的方式是使用 HTTP 的方式进行提交。 但你提交的时候, 会发现一直提示:
error: The requested URL returned error: 403 Forbidden while accessing http://xxx
这主时, 你需要修改你的项目目录下的 .git/config 文件 在 url 中修改成象
url = https://iakuf@github.com/iakuf/mojo
也就是给你的 github 的帐号名使用 @ 加到前面, 才能做为 HTTP 认证的用户来认证. 这样就不用关心 SSH 的 Key 的问题了。
2. 给自己修改的项目, 提交 ( Pull Requests) 给原作者合并
我原来一直使用 github 但只会提交修改, 我也在陈子的指导下学会了 Pull Requests 到原来的作者。
其实很简单。 在界面上边有个 Pull Requests。
点进去, 然后就可以见到你和原作者项目的差异的代码,上面有个 "Create pull request". 点击后会让你写上修改的主题,还有修改的一些介绍。 写完后, 然后提交过去。 作者的项目就会收到你这个请求了。如果他认为不错, 就会合并到你的代码到他的主代码中。
3. 更新自己 Fork 的代码项目和原作者的项目进度一致的方法
经过一段时间, 有可能作者原来的代码变化很大, 你想接着在他最新的代码上修改, 这时你需要合并原作者的最新代码过来, 让你的项目变成最新的。这个需要本地操作。 假设前提是, 你现在你的代码是克隆下来在本地的。 例如我 Fork 了 sri (Mojo 的作者) 的 Mojo 项目, 我的项目地址是 https://github.com/iakuf/mojo. 我现在克隆这个在我的本地了。
git clone https://github.com/iakuf/mojo
cd mojo
接着, 我只需要添加 sri 项目的地址,也就是主项目的 remote 地址
git remote add sri https://github.com/kraih/mojo
git fetch sri
git merge sri/master
这新就能给你的本地的项目变成和主项目一样。 然后你按正常的流程进行修改并提交到你的项目就好了。
git commit -am '更新到原作者的主分支的进度' git push origin
原文 http://www.php-oa.com/2014/10/22/github-operation.html