`
wbj0110
  • 浏览: 1640257 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

基于Github参与eoe的开源项目指南

阅读更多

Github是一个非常棒的项目托管网站,基于Git的原理,让我们可以非常方便的多人协作参与到开源项目里来,前几日eoe把android客户 端开源了,看到不少同学非常积极的参与进来或者想参与进来,但是不是很熟悉Git或Github,有不少困惑和疑问,我这里写一篇如何基于Github参 与eoe开源项目的指南。

 

注:
Git的理念和基本操作和推荐的使用方式我就不详细说了,大家可以参考诸如git-flow这样的规范或其他文章,我们这次只讲如何基于Github多人协助。

 

协助约定

 

  • 1.每个人都可以fork一份自己的repo,所有的修改都在自己私有的repo上进行;
  • 2.修改完成,测试通过后通过给主repo发pull request请求合并;
  • 3. 主repo(eoecn/android-app)的管理团队收到pull request请求后,review代码,合并进来;
  • 4.个人的repo需及时和主repo保持同步;

接下来,我们详细说明每个步骤是如何操作的。

 

第1步:fork一份自己的repo
打开eoecn/android-app在Github上的主页(https://github.com/eoecn/android-app/) ,如下
Screen Shot 2013-04-29 at 8.30.29 AM.png

 

在右上角点击“fork”就可以fork一份自己的repo,其url类似于https://github.com/IceskYsl/android-app ,现在我们就有了一份自己的repo,接下里我们的操作都是基于自己的repo(我这里就是 iceskysl/android-app) 。

 

第2步:clone自己的repo
上面我们fork了自己的repo,接着就可以clone下来了,先到自己的repo主页(https://github.com/IceskYsl/android-app ),找到repo的git地址,诸如这样 git@github.com:IceskYsl/android-app.git,然后clone到本地

 

1
2
3
4
5
6
7
ice@mac:/source/labs/git > git clone git@github.com:IceskYsl/android-app.git
Cloning into 'android-app'...
remote: Counting objects: 490, done.
remote: Compressing objects: 100% (296/296), done.
remote: Total 490 (delta 162), reused 490 (delta 162)
Receiving objects: 100% (490/490), 2.22 MiB | 231 KiB/s, done.
Resolving deltas: 100% (162/162), done.

第3步:查看和添加远程分支
我们接着cd到项目里,看下当前的git远程仓库,如下

 

1
2
3
4
ice@mac:/source/labs/git > cd android-app/
ice@mac:/source/labs/git/android-app > git remote -v
origin     git@github.com:IceskYsl/android-app.git (fetch)
origin     git@github.com:IceskYsl/android-app.git (push)

可以看到当前的项目里有一个叫'origin'的远程仓库(就是我们刚刚clone的时候加入的),为了能很好的和主仓库(eoecn/android-app)保持代码同步,我们需要添加一个主仓库的远程仓库,命令如下

 

1
2
3
4
5
6
ice@mac:/source/labs/git/android-app > git remote add eoecn git@github.com:eoecn/android-app.git
ice@mac:/source/labs/git/android-app > git remote  -v
eoecn     git@github.com:eoecn/android-app.git (fetch)
eoecn     git@github.com:eoecn/android-app.git (push)
origin     git@github.com:IceskYsl/android-app.git (fetch)
origin     git@github.com:IceskYsl/android-app.git (push)

好了,到这里仓库就添加完成了,为了保持和主仓库的代码一致,我们接着需要获取下主仓库的最新代码。

 

第4步:获取主仓库最新代码

 

1
2
3
4
5
6
7
8
9
ice@mac:/source/labs/git/android-app > git fetch eoecn
remote: Counting objects: 279, done.
remote: Compressing objects: 100% (94/94), done.
remote: Total 222 (delta 128), reused 181 (delta 89)
Receiving objects: 100% (222/222), 261.66 KiB | 98 KiB/s, done.
Resolving deltas: 100% (128/128), completed with 50 local objects.
From github.com:eoecn/android-app
   bd0f14b..6b9533d  master     -> eoecn/master
ice@mac:/source/labs/git/android-app > 

第5步:合并到自己的分支里

 

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
ice@mac:/source/labs/git/android-app > git merge eoecn/master
Updating c7b152c..6b9533d
Fast-forward
 README.md                                          |    1 +
 source/.classpath                                  |    4 +-
 source/AndroidManifest.xml                         |   17 +-
 source/libs/zxing-1.6.jar                          |  Bin 0 -> 245201 bytes
 source/project.properties                          |    2 +-
 source/res/layout/qr_code_scan.xml                 |   33 ++
 source/res/layout/umeng_fb_send_feedback.xml       |    6 +-
 source/res/layout/user_login_activity.xml          |   13 +-
 source/res/raw/beep.ogg                            |  Bin 0 -> 6401 bytes
 source/res/values-zh/strings.xml                   |  176 ++++++-----
 source/res/values/colors.xml                       |    7 +
 source/res/values/dimens.xml                       |  113 +++----
 source/res/values/ids.xml                          |   18 +-
 source/res/values/strings.xml                      |  176 ++++++-----
 source/res/values/styles.xml                       |    7 +-
 source/src/cn/eoe/app/biz/BlogsDao.java            |    3 -
 source/src/cn/eoe/app/biz/DetailDao.java           |    1 -
 source/src/cn/eoe/app/biz/NewsDao.java             |    4 -
 source/src/cn/eoe/app/biz/SearchDao.java           |    4 +-
 source/src/cn/eoe/app/biz/WikiDao.java             |    1 -
 source/src/cn/eoe/app/entity/BlogContentItem.java  |    2 +-
 source/src/cn/eoe/app/entity/NewsContentItem.java  |    2 +-
 .../cn/eoe/app/entity/base/BaseResponseData.java   |    2 +-
 .../cn/eoe/app/indicator/TitlePageIndicator.java   |    5 +-
 .../eoe/app/slidingmenu/SlidingActivityHelper.java |    2 +-
 source/src/cn/eoe/app/ui/DetailsActivity.java      |    3 -
 source/src/cn/eoe/app/ui/MainActivity.java         |   36 +--
 source/src/cn/eoe/app/ui/SplashActivity.java       |   17 +-
 source/src/cn/eoe/app/ui/UserCenterActivity.java   |    8 +-
 source/src/cn/eoe/app/ui/UserLoginActivity.java    |  249 ++++++++-------
 source/src/cn/eoe/app/ui/UserLoginUidActivity.java |    2 +
 source/src/cn/eoe/app/ui/base/BaseActivity.java    |    4 +-
 .../cn/eoe/app/ui/base/BaseFragmentActivity.java   |    1 -
 .../app/ui/base/BaseSlidingFragmentActivity.java   |    6 +-
 source/src/cn/eoe/app/utils/MD5.java               |    7 +-
 source/src/cn/eoe/app/utils/PopupWindowUtil.java   |    1 -
 source/src/cn/eoe/app/utils/Utility.java           |    1 -
 source/src/cn/eoe/app/view/BlogFragment.java       |    6 -
 source/src/cn/eoe/app/view/NewsFragment.java       |    6 -
 source/src/cn/eoe/app/view/UserIntroFragment.java  |    4 +-
 source/src/cn/eoe/app/view/WikiFragment.java       |    6 -
 source/src/cn/eoe/app/widget/XListView.java        |    2 +-
 source/src/cn/eoe/app/widget/XListViewFooter.java  |    2 +-
 source/src/cn/eoe/app/widget/XListViewHeader.java  |    2 +-
 source/src/com/google/zxing/CaptureActivity.java   |  216 +++++++++++++
 .../com/google/zxing/camera/AutoFocusCallback.java |   48 +++
 .../zxing/camera/CameraConfigurationManager.java   |  288 +++++++++++++++++
 .../src/com/google/zxing/camera/CameraManager.java |  326 ++++++++++++++++++++
 .../com/google/zxing/camera/FlashlightManager.java |  150 +++++++++
 .../zxing/camera/PlanarYUVLuminanceSource.java     |  133 ++++++++
 .../com/google/zxing/camera/PreviewCallback.java   |   59 ++++
 .../zxing/decoding/CaptureActivityHandler.java     |  143 +++++++++
 .../google/zxing/decoding/DecodeFormatManager.java |  104 +++++++
 .../com/google/zxing/decoding/DecodeHandler.java   |  115 +++++++
 .../com/google/zxing/decoding/DecodeThread.java    |   85 +++++
 .../com/google/zxing/decoding/FinishListener.java  |   47 +++
 .../com/google/zxing/decoding/InactivityTimer.java |   71 +++++
 source/src/com/google/zxing/decoding/Intents.java  |  190 ++++++++++++
 .../zxing/view/ViewfinderResultPointCallback.java  |   34 ++
 .../src/com/google/zxing/view/ViewfinderView.java  |  183 +++++++++++
 60 files changed, 2738 insertions(+), 416 deletions(-)
 create mode 100644 source/libs/zxing-1.6.jar
 create mode 100644 source/res/layout/qr_code_scan.xml
 create mode 100644 source/res/raw/beep.ogg
 create mode 100644 source/src/com/google/zxing/CaptureActivity.java
 create mode 100644 source/src/com/google/zxing/camera/AutoFocusCallback.java
 create mode 100644 source/src/com/google/zxing/camera/CameraConfigurationManager.java
 create mode 100644 source/src/com/google/zxing/camera/CameraManager.java
 create mode 100644 source/src/com/google/zxing/camera/FlashlightManager.java
 create mode 100644 source/src/com/google/zxing/camera/PlanarYUVLuminanceSource.java
 create mode 100644 source/src/com/google/zxing/camera/PreviewCallback.java
 create mode 100644 source/src/com/google/zxing/decoding/CaptureActivityHandler.java
 create mode 100644 source/src/com/google/zxing/decoding/DecodeFormatManager.java
 create mode 100644 source/src/com/google/zxing/decoding/DecodeHandler.java
 create mode 100644 source/src/com/google/zxing/decoding/DecodeThread.java
 create mode 100644 source/src/com/google/zxing/decoding/FinishListener.java
 create mode 100644 source/src/com/google/zxing/decoding/InactivityTimer.java
 create mode 100644 source/src/com/google/zxing/decoding/Intents.java
 create mode 100644 source/src/com/google/zxing/view/ViewfinderResultPointCallback.java
 create mode 100644 source/src/com/google/zxing/view/ViewfinderView.java

哎哟,正好获取到主分支合并了添加二维码扫描的代码。

 

第6步:本地修改代码,提交到自己的repo
本地代码保持最新后,就可以修改或者添加代码了,比如你添加新的功能获取修复其他的bug,这里我示范着在README.md里添加一个指向本文链接的信息,操作步骤如下:
ice@mac:/source/labs/git/android-app > mate .
打开README.md文件,添加如下信息
Screen Shot 2013-04-29 at 9.21.26 AM.png

 

接着,我把本次修改添加到本地的仓库里,步骤如下

 

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
ice@mac:/source/labs/git/android-app > git st
# On branch master
# Changes not staged for commit:
#   (use "git add <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)
#
#     modified:   README.md
#
no changes added to commit (use "git add" and/or "git commit -a")
ice@mac:/source/labs/git/android-app > git add .
ice@mac:/source/labs/git/android-app > git commit -m "添加链接到'基于Github参与eoe的开源项目指南'的链接"
[master 39087c4] 添加链接到'基于Github参与eoe的开源项目指南'的链接
 1 file changed, 3 insertions(+)

最后我把本次修改提交到我自己的远程仓库(IceskYsl/android-app)中,操作如下

 

1
2
3
4
5
6
7
8
ice@mac:/source/labs/git/android-app > git push  origin master
Counting objects: 5, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 522 bytes, done.
Total 3 (delta 1), reused 0 (delta 0)
To git@github.com:IceskYsl/android-app.git
   1c960df..39087c4  master -> master

第7步:给主repo发pull request
提交到自己repo后,就可以给主repo发一个请求合并的pull request,操作步骤是这样的
打开https://github.com/IceskYsl/android-appPull,点击右上角的“ request”,会打开创建pull request的界面,如下
Screen Shot 2013-04-29 at 9.35.50 AM.png

 

第8步:主repo收到pull request后,可以merge进来

 

这个可以review修改,如果没问题就可以直接“Merge pull requst”
Screen Shot 2013-04-29 at 9.36.52 AM.png

 

merge后就可以在主仓库看到了,如下.
Screen Shot 2013-04-29 at 9.38.14 AM.png

 

至此,整个协作过程完成。

 

eoe.cn客户端开源

 

原文地址: http://my.eoe.cn/iceskysl/archive/3195.html

 

分享到:
评论

相关推荐

    收藏的博客 -- Qt有关的GitHub-Gitee开源项目.docx

    - KDE(https://kde.org/)是一个使用Qt构建的开源桌面环境,拥有大量基于Qt的项目。 总之,Qt作为一个强大的开发框架,拥有丰富的资源和社区支持。无论是初学者还是经验丰富的开发者,都能在这些资源中找到所需的...

    5个好玩的github游戏区开源项目

    对于游戏爱好者来说,GitHub 上有许多有趣的开源游戏项目,能够让我们深入了解游戏开发的过程,甚至参与其中。以下是五个涵盖 C++, Java, JavaScript 和 Rust 语言的开源游戏项目,它们不仅好玩,还能帮助我们提升...

    基于GitHub的OpenCV开源项目的C++设计源码克隆

    这种方式不仅使得开源项目的资源共享变得非常便利,同时也鼓励了开源社区的参与和协作,开发者可以在这个基础上添加新功能、改进算法或修复漏洞,共同推动OpenCV项目的发展。 通过这个克隆项目,研究人员和开发者...

    教你如何用Github找开源项目(保姆级教程)

    教你如何用Github找开源项目(保姆级教程)教你如何用Github找开源项目(保姆级教程)教你如何用Github找开源项目(保姆级教程)教你如何用Github找开源项目(保姆级教程)教你如何用Github找开源项目(保姆级教程)教你...

    github 开源中国项目

    虽然描述未提供具体信息,但根据提供的博客链接,我们可以推测这篇博客可能介绍了如何利用GitHub找到并参与到开源中国的项目中,可能涵盖了项目搜索技巧、贡献指南以及参与开源社区的经验分享等内容。博客可能还会...

    收集GitHub上的Flutter开源项目源码_2021_03_20.zip

    这个压缩包文件"收集GitHub上的Flutter开源项目源码_2021_03_20.zip"显然包含了2021年3月20日时,GitHub上的一些Flutter开源项目的源代码。这些源码对于开发者来说是极其宝贵的资源,可以用来学习、参考和实践...

    GitHub 免费的开源项目.docx

    GitHub 免费的开源项目

    基于GitHub开源的smartknob项目设计源码下载与学习

    基于GitHub的smartknob项目通过提供全面的设计源码和丰富的文件类型,为全球开发者提供了一个学习和实践的平台。该项目不仅能够帮助开发者掌握多种编程语言和开发工具,还能够提高他们的系统设计能力,为未来的软件...

    基于GitHub的SQLite开源数据库C语言实现设计源码

    本项目所提供的基于GitHub平台的SQLite开源数据库C语言实现设计源码,不仅是技术交流的成果,也是数据库学习与开发的宝贵资源。 SQLite以其轻量级、易于部署、跨平台兼容性强等特性广泛应用于移动设备、桌面应用及...

    2022 GitHub 优质 Java 开源项目推荐.docx

    【Java开源项目推荐】 在Java开发领域,GitHub是获取开源项目的重要平台,而"awesome-java"集合了众多高质量的Java开源项目。...因此,对于Java开发者来说,定期关注和参与GitHub上的优质开源项目是极其重要的。

    0615-极智开发-解读github参与开源项目代码pr的方法

    0615_极智开发_解读github参与开源项目代码pr的方法

    基于 GitHub 开源数据的开发者评估平台(可对开发者的技能、贡献和协作网络进行深入评估)

    【资源介绍】 1、该资源包括项目的全部源码,下载可以直接使用! 2、本项目适合作为计算机、数学、电子信息等专业的课程...基于 GitHub 开源数据的开发者评估平台(可对开发者的技能、贡献和协作网络进行深入评估).zip

    GitHub上最火的40个Android开源项目源码

    GitHub上最火的40个Android开源项目源码,筛选了下,主要是把可以加到我们项目中的下了下来,这里有40个项目的描述,以及12个项目的源码,省的各位童鞋重复下载了,当然如果有童鞋需要其他的项目,我这里也给出了...

    GitHub 的开源项目:绝版游戏保护工程.zip

    在压缩包中的“GitHub 的开源项目:绝版游戏保护工程.txt”文件,可能包含了项目介绍、游戏列表、参与指南、代码仓库链接以及如何贡献的详细信息。以下是对这个文件内容的详细解读: 1. **项目介绍**:可能详细阐述...

    优秀开源项目(基于VC++和MFC)(基于VC++和MFC的一些优秀开源项目)

    基于VC++和MFC的一些优秀开源项目列表 包括7-Zip,eMule,FileZilla,MiKTeX,Nokia Composer等优秀项目,有兴趣的同行可以参考参考。

    github 开源贡献指南中文版本.pdf

    github 开源贡献指南中文版本

    GitHub_40个Android开源项目

    在IT行业中,尤其是在Android开发领域,GitHub是一个至关重要的平台,它汇聚了全球开发者分享的大量开源项目。"GitHub_40个Android开源项目"这个压缩包文件,显然是一份宝贵的资源,包含了40个广受关注且极具价值的...

    基于github.com上开源项目二次开发的Telegram 即时聊天系统的验证码机器人(captcha-bot)

    基于github.com上开源项目二次开发的Telegram 即时聊天系统的验证码机器人(captcha-bot),启动程序前先配置好config文件,注意我新添加了telegram api url变量,可以自己定义本地telegram api 服务器地址。...

    开源项目参与与GitHub社区规范.docx

    本篇文章将详细介绍如何参与开源项目以及GitHub社区的规范,为有兴趣融入开源社区的读者提供一份详尽的指南。 首先,要参与GitHub上的开源项目,你需要创建一个GitHub账户。注册过程十分简单,只需访问GitHub官网,...

    GitHub开源项目SlidingMenu类库

    GitHub开源项目SlidingMenu的类库,导入之后可以直接使用 教程地址:http://blog.csdn.net/yangyu20121224/article/details/9255829

Global site tag (gtag.js) - Google Analytics