技术头条 - 一个快速在微博传播文章的方式     搜索本站
您现在的位置首页 --> 其他 --> github 上 Fork 别人的项目后的常用的操作指南

github 上 Fork 别人的项目后的常用的操作指南

浏览:3846次  出处信息

因为我 Fork 了 Mojo 的项目,这样才学会了如何使用 github. 因为其它一些项目是自己创建的,也就学不会怎么和其它团队合作。 现在给这部分不一样的经验分享给大家。希望有利于大家参与到开源的项目来。

1. 提交自己本地项目的修改到 github 的库中.

如果你自己的项目,或者是其它人的项目, 你 Fork 了以后, 一定是到本地来进行开发和测试。所以当你自己给自己的项目 clone 到本地后, 进行了一系列的修改后, 当你想提交时, 最方便的方式是直接使用 HTTP 的方式进行提交。 但当你提交的时候, 就会发现一直权限出错的提示:

error: The requested URL returned error: 403 Forbidden whileaccessing http://xxx

这时, 你需要修改你的项目目录下的 .git/config 这个 git 的配置文件。给其中的 url 选项中修改如下:

url = https://iakuf@github.com/iakuf/mojo

这其实就是给你的 github 的帐号名, 通过 @ 加到 URL 的前半部分, 这样才能成为 HTTP 认证的用户信息来进行接下来的认证. 这样就不用关心 SSH 的 Key 的问题了。

2. 当自己 Fork 后的项目更新后, 提交 ( 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 地址, 我们加入后, 给代码 fetch 过来, 然后进行 merge 的合并操作。

git remote add sri https://github.com/kraih/mojo
git fetch sri
git merge sri/master

这样就能给你的当前本地的项目变成和原作者的主项目一样。 然后你按正常的流程进行修改并提交到你的项目就好了。

git commit -am '更新到原作者的主分支的进度'
git push origin

要接着给修改提交给原作者,请参照第二步。

建议继续学习:

  1. GitHub中的README.MD文件编写语法    (阅读:4299)
  2. 极不和谐的 fork 多线程程序    (阅读:2754)
  3. 多线程下的fork及写时复制导致的性能问题    (阅读:2697)
  4. fork 与 IO 流的缓冲模式    (阅读:2624)
  5. Github 的 CSS 风格指南    (阅读:1989)
  6. 你必须收藏的Github技巧    (阅读:2289)
  7. GitHub 是怎么火起来的    (阅读:1785)
  8. 关于开源,关于 GitHub, 关于 Android    (阅读:1596)
  9. 初学者指南:在 Ubuntu Linux 上安装和使用 Git 和 GitHub    (阅读:1612)
QQ技术交流群:445447336,欢迎加入!
扫一扫订阅我的微信号:IT技术博客大学习
© 2009 - 2024 by blogread.cn 微博:@IT技术博客大学习

京ICP备15002552号-1