文档章节

在GITHUB上进行团队项目开发教程

hosser
 hosser
发布于 2015/12/07 23:09
字数 1263
阅读 212
收藏 10

在GITHUB上进行团队项目开发教程技术

maybe yes 发表于2015-03-27 01:48

原文链接 : http://blog.lmlphp.com/archives/92/Team-project_development_tutorial_on_GITHUB 来自 : LMLPHP后院

就项目开发管理而言,很多公司都走的比较慢,很多很多的软件公司在软件项目开发管理方面还不是很前卫,大部分的公司都在用 CVS,SVN 作为版本控制系统,很少有公司使用 GIT 来管理,在 GITHUB 上协同开发项目的团队就更少了。究其原因,可能大家习惯了 Windows 桌面带来的方便,使用 GIT 多少有些不习惯;将项目放在 GITHUB 上要收费,并且有些东西涉及机密,很多公司也不敢这么做。

国外的一些产品比国内的产品更让人感觉到可靠,我想 GITHUB 应该是个有道德的公司,对保护用户数据应该还是做的不错的。我相信,以后会有很多公司都会将项目放到 GITHUB 的私有库上。用过很多的在线产品,印象中做的不错的网站有 126 邮箱,GITHUB 等。这篇文章将完整的讲述如何在 GITHUB 上进行团队项目开发的过程。

Fork项目到自己的 GITHUB 账号下

在 GITHUB 上进行团队多人项目开发,一般会被公司拉入一个组织,这样你才有权限 Fork 一个项目到自己的账号下。当然,如果你以后离开了这个组织,你 Fork 的代码是否还存在,你提交过的代码是否还可见,本人也不知道会是什么样子,我想 GITHUB 会很好的处理这样的问题。

Clone 项目到本地

关于对 GIT 的认知,有一句话说的非常好:“GIT,Every thing is local”。一般情况下,clone 下来的项目都有个主分支,名字叫 master。主分支主要是用来更新代码和创建新分支的,一般不建议对其做任何修改,需要开发一个功能时,直接创建一个新的分支即可。在 master 上需要经常的执行 git pull,保证代码的最新。

在新分支上开发新功能

有了新的需求后,我们一般先创建一个新的分支。切换到新的分支后,通常开发周期会很长,整个过程中我们会提交很多次,当然,在某些时候一个人可能会同时开发几个功能,需要在不同的分支之间来回切换。当在一个分支上做了修改后,这个时候如果其他的分支的需求更急切,需要切换到另一个分支,可以先将当前的分支的修改提交,不然 GIT 不会允许切换过去。在开发完成一个分支后,一般的,我们要对这个分支的提交做一些整理,合并成一个提交,详细见我的另一篇文章《git使用之rebase合并提交》,然后再将新分支 push 到 GITHUB 远程库上;如果 push 到远程库后,又做了修改和提交,下次 push 的时候需要带上 -f 参数,否则会提示发生冲突。

Pull Request

GITHUB 提供了一个 pull request 功能,这样有个好处,就是全世界的开发者都可以向原项目作者贡献代码。在 Pull Request 之前,我们需要做个 git rebase master 的操作。一般情况下开发周期比较长,大型项目很多人都在开发,在新分支开发完成时,主分支也许进行了很多次的提交,我们新开发的分支已经落后主分支很多次的提交。rebase master 的意思就是将这个分支的所有提交和修改以主分支现在的状态为起点,rebase 的过程其实是临时的产生了一个新的分支,如果文件有冲突,可以使用 git status 查看哪些文件有问题,手动修改好了之后,执行 git rebase --continue 完成 rebase 操作。rebase master 操作成功了之后,通过 git log --pretty=oneline 可以看到新分支的所有提交都移动到了 master 最近一次提交的前面了。最后将新分支 push 到 GITHUB 上,并发出 Pull Request,可以看到此次 pull request 下面有绿色的提示:这个分支可以自动合并,这个时候如果原作者认可,就可以自动合并该分支的代码到主分支。合并了之后,GITHUB 会提示,这个分支已经合并,可以安全的删除了。

最后

最后,我感觉 GITHUB 网站做的很好,UI 感觉很舒服,功能很强大,技术很牛叉,这样的好网站见的不多。

阅(661)评(0)查看评论


本文转载自:http://blog.lmlphp.com/archives/92/Team-project_development_tutorial_on_GITHUB

hosser

hosser

粉丝 192
博文 78
码字总数 4614
作品 3
徐汇
私信 提问
从小白到程序员的攻略(适合自学编程的网站)

随着信息时代、大数据时代、人工智能的发展,程序员这个行业也被推到了社会的浪尖上。人们对程序员的评价褒贬不一,而且各个程序员的编程水平和能力也参差不齐。程序员这个行业是一个要求自我...

室长
2017/12/24
0
0
专为设计师而写的GitHub快速入门教程

在互联网行业工作的想必都多多少少听说过GitHub的大名,除了是最大的开源项目托管平台,许多企业也都是用GitHub来协同开发工作。笔者最初决定学习Git也是因为在团队内部设计方案初步被开发出...

一只死笨死笨的猪
2014/09/30
59
0
Minho/smartwiki

简介 SmartWiki是一款针对IT团队开发的简单好用的文档管理系统。 可以用来储存日常接口文档,数据库字典,手册说明等文档。内置项目管理,用户管理,权限管理等功能,能够满足大部分中小团队...

Minho
2016/11/23
0
0
官宣!Flutter UI APP 低调上线

项目仓库 目前项目组件还在不断更新中...... 当github仓库更新后 教程会实时更新到app里面 apk下载 欢迎对组件疑问提出你的issue 项目背景 在经历了REACT NATIVE 弃用潮的大环境里,越来越多...

ckken
03/18
0
0
Gogs:用二进制才是真正的部署

Gogs:用二进制才是真正的部署 抛弃世俗之浮躁,留我钻研之刻苦2014-03-29235 阅读 二进制部署 本篇博客是随着 Gogs - Go Git Service 版本而发布的。 首先,请允许我代表开发团队感谢所有在...

抛弃世俗之浮躁,留我钻研之刻苦
2014/03/29
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Kafka实战(五) - 核心API及适用场景全面解析

1 四个核心API ● Producer API 允许一个应用程序发布一串流式的数据到一个或者多个Kafka topic。 ● Consumer API 允许一个应用程序订阅一个或多个topic ,并且对发布给他们的流式数据进行处...

JavaEdge
今天
11
0
实现线程的第三种方式——Callable & Future

Callable Runnable 封装一个异步运行的任务, 可以把它想象成为一个没有参数和返回值的异步方 法。Callable 与 Runnable 类似, 但是有返回值。Callable 接口是一个参数化的类型, 只有一 个...

ytuan996
今天
11
0
OSChina 周六乱弹 —— 不要摁F了!

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @巴拉迪维 : 朴树写的词曲都给人一种莫名的失落感,不过这首歌他自己却没有唱,换成赵传这种高音阶嘶喊的确很好,低沉但却有力,老男人的呐喊...

小小编辑
今天
22
0
Android Binder机制 - interface_cast和asBinder讲解

研究Android底层代码时,尤其是Binder跨进程通信时,经常会发现interface_cast和asBinder,很容易被这两个函数绕晕,下面来讲解一下: interface_cast 下面根据下述ICameraClient例子进行分析...

天王盖地虎626
昨天
13
0
计算机实现原理专题--存储器的实现(二)

计算机实现原理专题--存储器的实现(一)中描述了一种可以记住输入端变化的装置。现需要对其功能进行扩充,我们将上面的开关定义为置位,下面的开关定义为复位,然后需要增加一个保持位,当保...

FAT_mt
昨天
9
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部