Github团队开发示例(一)
Github团队开发示例(一)
作者:Grey
原文地址:http://www.cnblogs.com/greyzeng/p/6044837.html
我们可以在Github上管理自己的团队项目。团队成员通过Github进行协同工作,也方便管理,接下来我提供一种Github团队建立仓库的目录格式,并对每个目录进行必要说明,最后根据这个目录结构写了一个简单的例子。
团队仓库目录结构
- TestOrgName
- xxxsystem
- configs
- dbscripts
- docs
- src
- xxxsystem
下面一一说一下这些目录的作用:
TestOrgName
团队/组织名,可以自定义,最好用英文。
xxxsystem
团队要做的项目名称,可以自定义,最好用英文。
configs
在开发的时候,项目是部署在开发环境中的,所以项目中的一些配置文件,比如:数据库连接配置文件,都是用的开发环境的数据库连接配置,项目要部署上线的时候,我们需要把开发环境的数据库连接配置替换成生产环境的数据库连接配置,所以这个目录可以用来存生产环境的相关配置文件。
之所以将测试环境/开发环境/生产环境分开是因为开发过程中,需要对数据库中的一些数据进行测试或者修改,如果不和生产环境分开,会“污染”生产环境的数据。
dbscripts
在开发过程中,每次开发过程中涉及到要执行一些脚本,比如:开发过程中,要新建一个表,建表语句就要保存在这个目录里面,待开发完毕上线的时候,就需要在生产环境中执行这个建表语句。
docs
这里存放项目的相关文档,比如:需求说明书,会议纪要,上线手册等。
src
这里存放项目源码。
一个例子
我们通过这个简单的例子来说明如何配置相关目录中的信息。
团队基本信息
- 团队名称:PhoenixGoGo
- 团队要做的项目名称:helloworld
在Github中新建团队
新建organization

输入Organization Name等相关信息,并点击Create organization

邀请成员,这步我们先略过,点击Finish


此时,我们就把团队仓库新建完毕。
在团队仓库中新建项目
点击Create a new repository

输入项目相关信息, 并点击Create repository

此时,我们就把项目建好了。
初始化相关目录
先将项目clone至本地:
git clone https://github.com/PhoenixGoGo/helloworld.git
进入项目目录,并新建以下文件夹:

项目需求
我们要将控制台输入的文本写入到C盘根目录中的
file_product文件夹中的ds.txt文件中。
配置和初始化
为了不影响生产环境
file_product文件夹中的ds.txt文件, 我们考虑在C盘根目录中新建一个file_develop的文件夹,并在这个文件夹里面ds.txt文件,我们平时在开发的时候,就读取file_develop中的ds.txt文件,等我们开发完毕测试通过以后,我们可以把相关的目录改为file_product。
为了说明问题,我通过脚本来新建相关目录,以Windows为例,
- 新建一个名为
init_ds.bat文件, - 用记事本打开这个文件写入以下内容并保存:
@echo off
md "C:\file_develop"
C:
cd "C:\file_develop"
cd.>ds.txt
双击这个bat文件,可以在C盘下生成了相关目录和文件。同时,我们把init_ds.bat文件放到helloworld/dbscripts文件夹下面。
因为以后发布项目的时候要切换目录,所以,我们不能把要读取的目录写死在代码里面,我们可以将目录路径写在配置文件里面,通过读取配置文件来获得目录的路径,这样我们在部署的时候只需要用生产环境的配置文件覆盖开发环境的配置文件即可。
我们可以新建两个配置文件,一个用于开发环境,一个用于生产环境。
我们先新建一个开发环境中需要的配置文件:
- 新建一个名为
config.properties的配置文件, - 用记事本打开这个文件写入以下内容并保存:
# test environment
file.name=C:/file_develop/ds.txt
再新建一个生产环境中需要的配置文件:
- 新建一个名为
config.properties的配置文件, - 用记事本打开这个文件写入以下内容并保存:
# product environment
file.name=C:/file_product/ds.txt
我们把这个用于生产的配置文件放在helloworld/configs下面。
项目源码(部分)
为了方便,这里对代码没有做优化和检查。完整源码
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Properties;
import java.util.Scanner;
public class App {
private static Scanner scanner;
public static void main(String[] args) {
Properties prop = new Properties();
try {
prop.load(new FileInputStream("config/config.properties"));
scanner = new Scanner(System.in);
String line = null;
System.out.print("please input:");
while (!"exit".equals(line = scanner.nextLine())) {
System.out.println("input context = " + line);
System.out.print("please input: ");
File writename = new File(prop.getProperty("file.name"));
writename.createNewFile();
BufferedWriter out = new BufferedWriter(new FileWriter(writename));
out.write(line);
out.flush();
out.close();
}
System.out.println("The program will exit");
} catch (IOException e) {
e.printStackTrace();
}
}
}
我们将源码放入helloworld/src目录下。
我们将helloworldpush到远程仓库:
控制台下分别执行以下命令:
cd helloworld
git add *
git commit -m "if applied, this commit will init project"
git push -u origin master
此时,项目的结构是这样的:

相关文档
项目组经常会有新来的成员 ,他们如何在没有老成员带的情况下,通过文档就可以在一台全新的机器上部署项目呢?
这时候我们就需要一个文档,来说明项目如何部署运行,下面是这个helloword项目的部署文档,仅供参考:
开发环境
安装
相关配置
打开Eclipse,设置编码格式UTF-8:
Window->Preferences->General->Workspace->Text file encoding->UTF-8

在Eclipse中打开:
Window->Show View->Other...->找到Git Repositories并双击
Window->Show View->Other...->找到Git Staging并双击

配置Maven到Eclipse中:
Window->Preferences->Maven->Installations->Add...->选择前面安装的Maven的目录

点击Finish。
导入仓库
在Git Repositories下点击clone git repository

输入URI以及Github用户名和密码



点击finsh

导入项目
在控制台下,我们进入源码的目录执行:
mvn eclipse:eclipse


在src目录下右键,选择Import Projects:

选择import existing Eclipse Projects:


项目导入完成

运行项目
选择App.java
右键-> Run As->Java Application

以上为helloworld这个项目的开发部署文档, 我们可以将其保存为:develop_guide.md 文件,
并且放到hellworld/docs目录下
最后,把docs目录也提交到团队仓库中去。
增加团队成员
团队仓库初始化好以后,我们可以增加团队成员进行协作开发:
点击Invite member

输入你的团队成员的Github账户即可对相应的成员发出邀请,接收到邀请的成员要进Github注册邮箱进行确认方可加入:
这里包含两类人:Member/Owner :

他们拥有的权限可以自定义,管理员可根据需要配置不同团队成员的权限:

Github团队开发示例(一)的更多相关文章
- Github团队开发示例(二)
Github团队开发示例(二) 作者:Grey 原文地址:http://www.cnblogs.com/greyzeng/p/6063765.html 接之前讲的Github团队开发示例(一),本文主 ...
- 从零开始,创建GitHub团队开发环境
从零开始,创建GitHub团队开发环境 GitHub提供免费的团队环境,不过免费仓库容量是300MB,请大家注意. 申请GitHub个人账号 1. 使用浏览器访问GitHub主页.如果使用IE,尽量不 ...
- Github团队开发集成以及eclipse集成
温馨提示:本篇是用于团队开发协作的github,如果是单人的可以移步本系列另外一篇 集成eclipse较为简单 团队仓库目录结构 TestOrgName xxxsystem configs dbscr ...
- 关于如何在github上创建团队开发环境
今天想写个如何在github上创建团队开发环境的博客.送给那些还不知道如何在github上创建团队开发环境的开发人员. 1.首先,当然你要有个github的账号.具体怎么注册我这里就不说了.可以上gi ...
- git 团队开发常用操作流程(适用于 gogs、gitlab、github)
git 团队开发常用操作流程(适用于 gogs.gitlab.github) NO1 项目构建者 (1)在远程仓库创建仓库 (2)将伙伴添加到仓库合作者中(无先后要求) (2)cd 到项目将要存放项目 ...
- Android Studio && GitHub 团队多人一起开发
曾几何时,花了两天的时间搞了合并项目,搞得乱七八糟der,但最终还是被我搞定了,too 乱 to 做笔记.过了几个月,也就是前几天,抱着从头开始的决心,再次尝试,然鹅并没有结果.今天,再一次重新开始, ...
- [.net 面向对象程序设计进阶] (27) 团队开发利器(六)分布式版本控制系统Git——在Visual Studio 2015中使用Git
[.net 面向对象程序设计进阶] (26) 团队开发利器(六)分布式版本控制系统Git——在Visual Studio 2015中使用Git 本篇导读: 接上两篇,继续Git之旅 分布式版本控制系统 ...
- Padrino 博客开发示例
英文版出处:http://www.padrinorb.com/guides/blog-tutorial 楼主按 拿作者自己的话说:Padrino(谐音:派骓诺)是一款基于Sinatra的优雅的Web应 ...
- [Liferay6.2]Liferay入门级portlet开发示例
什么是Portlet 来自百度百科(http://baike.baidu.com/view/58961.htm)的定义如下: portlet是基于java的web组件,处理request并产生动态内容 ...
随机推荐
- HTML基础篇之视频音频
<audio src="song.ogg" controls="controls"></audio> <!-- 兼容的音频格式og ...
- linux下打包zip文件
zip [参数] [打包后的文件名] [打包的目录路径] linux zip命令参数列表:-a 将文件转成ASCII模式-F 尝试修复损坏的压缩文件 -h 显示帮助界面-m 将文件压 ...
- SQL Server最近怎样了
SQL Server最近怎样了 又到年终了,大家都作最后冲刺 最近园子里真的多了很多口水帖,无论大家争论得多么激烈,时间依然滴答滴答地过,争论完之后我们依然要继续埋头苦干 为年终奖.为明年做准备 这里 ...
- 非域环境下搭建自动故障转移镜像无法将 ALTER DATABASE 命令发送到远程服务器实例的解决办法
非域环境下搭建自动故障转移镜像无法将 ALTER DATABASE 命令发送到远程服务器实例的解决办法 环境:非域环境 因为是自动故障转移,需要加入见证,事务安全模式是,强安全FULL模式 做到最后一 ...
- 一个App完成入门篇(七)- 完成发现页面
第七章是入门篇的倒数第二篇文章了,明天整个APP将进入收官. 本节教程主要要教会大家使用二维码扫描和用do_WebView组件加在html页面. 导入项目 do_WebView组件 扫描功能 自定义事 ...
- PC使用网线上网的条件下,通过PC的Wifi共享提供手机上网教程
场景和目标 你有一个笔记本(或装有无线网卡的PC),可以通过网线上网,但是没有无线路由器.现在想要通过笔记本的无线网,让手机也能共享wifi上网. 环境 Win7 操作系统.带有无线网卡的PC或笔记本 ...
- Azure PowerShell (3) 上传证书
<Windows Azure Platform 系列文章目录> 本文介绍的是国外的Azure Global Update 2015-09-01 发现一个新的命令,在Azure PowerS ...
- Jquery UI - DatePicker 在Dialog中无法自动隐藏的解决思路
通过Jquery UI Dialog模态展示如下的一个员工编辑页面,但是遇到一个奇怪的问题:点击Start Date的input元素后,其无法失去焦点.从而导致DatePicker控件在选择日期后无法 ...
- 调试的时候 line not available!
手贱, 不小心修改了一个地方,后面调试代码的时候,总感觉不对.出现: line not available, 总是到不了源码里面,反复部署了N次还是一样, 非常郁闷,... 搞了一两个小时后,后面醒悟 ...
- 2017预防bug的重要性
Bug,中文名缺陷.一个让软件测试员兴奋,让开发人员头疼的词.来源二次大战期间,一个称为"马克二型"的计算机,由于天气过热,硬件跟不上导致死机.最后发现是因为飞蛾,被继电器电死,将 ...