图片不好粘贴,原文件,请到资源中下载
http://download.csdn.net/detail/maotongbin/9866038
1.1 GIT简介
此部分可以略过
1.2 GitFlow工作流
此部分需要重点关注。以后我们将使用GitFlow工作流进行代码管理
主要分支:
· Master(绿色): 永远处在 production-ready 状态
· Develop(橙色): 最新的下次发布开发状态
支援性分支:
· Feature(蓝色): 开发新功能都从 develop 分支出来,完成后 merge 回 develop
· Release(黄色): 准备要 release 的版本,只修 bugs。从 develop 分支出来,完成后 merge 回 master 和 develop
· Hotfix(紫色): 等不及 release 版本就必须马上修 master 赶上线的情况。会从 master 分支出来,完成后 merge 回 master 和 develop
关于GitFlow工作流的详细说明,请阅读《Git工作流指南》 2.3 Gitflow工作流
共享文件夹: \\WINDOWS-SHARESE 你在开始菜单-运行输入这个,用户名gxwj,密码1901gx, 文件夹tools,主要开发工具在java开发工具文件夹中。
2.1 GIT
\\WINDOWS-SHARESE\tools\java开发工具\GIT工具\Git-2.11.0-64-bit.exe(安装过程此处略过)
2.2 EGIT
EGit是一款Eclipse上的Git插件。安装过程如下:
1.打开帮助中心,安装插件
2.填写egit信息
EGit插件地址:http://download.eclipse.org/egit/updates
3.随后连续下一步默认安装就可以,安装后进行重启Eclipse
GitLab 是一个用于仓库管理系统的开源项目。类似于SVN的数据仓库。
Gitlab地址: http://192.168.2.219/
3.1 注册
注册地址:http://192.168.2.219/users/sign_in
注册说明:
Name:请填写自己的真实姓名
Username:请填写姓名缩写。格式为 姓+名字首字母缩写
Email: 这里注意请勿使用 QQ邮箱。经测试QQ邮箱有收不到邮件的风险。
注册成功后请联系管理员授权。
3.2 SSH Key
如果希望本地能够顺利与gitlab交互。需要将本机的 id_rsa.pub 配置到gitlab 建立ssh信任。
1. 打开git-bash
git-bash在git的安装目录下
2. 输入命令ls -al ~/.ssh。检查是否显示有id_rsa.pub或者id_dsa.pub存在,如果存在请直接跳至第5步。
3. 在git bash中键入ssh-keygen -t rsa -C "your_email@example.com",注意将这里的邮箱地址替换成你自己的邮箱地址。在显示如下的输出后。
4. 一直按回车就可以了。然后就显示成这样:
5. 在这里可以看到id_rsa和id_rsa.pub文件已经生成。并且生成的路径也已显示。
用记事本之类的软件打开id_rsa.pub文件,并且复制全部内容。
6. 登录gitlab,打开SSH key标签。
7. 将刚刚复制的内容粘贴进去即可,然后点击add key。
8. 全部操作完成,只要你对你要操作的项目的有权限,接下来就可以顺利的进行git的操作了。
主要分支:
· Master(绿色): 永远处在 production-ready 状态
· 此分支为稳定版分支。普通开发人员无权操作。组长负责合并工作。对应亚马逊环境。
· 分支标记为 master
· Develop(橙色): 最新的下次发布开发状态
· 开发分支用于日常代码开发,不稳定分支。对应开发测试环境。
支援性分支:
· Feature(蓝色): 开发新功能都从 develop 分支出来,完成后 merge 回 develop
开发分支用于日常需求开发。由组长划分哪些需求在那条分支上开发,并创建分支。分支开发完成后组长负责合并Feature 到Develop.
· Release(黄色): 准备要 release 的版本,只修 bugs。从 develop 分支出来,完成后 merge 回 master 和 develop
发版分支,在发布版本前由组长指定此版本所包含的功能和bug并从Develop分支新建Release 用来维护此版本中所包含的BUG。
· Hotfix(紫色): 等不及 release 版本就必须马上修 master 赶上线的情况。会从 master 分支出来,完成后 merge 回 master 和 develop
此分支只能用于维护亚马逊环境所产生的BUG。用于BUG紧急修复。
5.1 EGIT配置
打开eclipse 属性文件。添加注册gitlab时填写的 email 和name。
5.2 导入项目
从git远程仓库导入项目
填写gitlab地址及用户名密码
http://192.168.2.219/cms/gitTest.git
指向本地workspace
也可以选择第二项新建一个项目
项目导入成功
此时默认是 master 分支。请勿在此分支上进行任何操作。开发工作需要切换到分支进行
5.3 分支切换
Remote Tracking 下面列出所有分支,此分支由组长创建并分配权限给开发人员。具体的任务在哪个分支上完成由组长进行分配。
切换后注意项目的版本信息发生变化
5.4 更新代码
Pull命令可以从远程将代码更新到本地。请在push之前务必先更新代码。否则push不成功。
5.5 提交代码
克隆服务器端仓库后,会在本地建立一个一样的仓库,称本地仓库。在本地进行commit操作将把更新提交到本地仓库,然后可以将服务器端的更新pull到本地仓库进行合并,最后将合并好的本地仓库push到服务器端,这样就进行了一次远程提交。
填写注释然后commit。注意此处commit只是将代码提交到本地仓库。只有自己可以见,并没有提交到远程仓库。如果确认代码无误需要提交到远程仓库,可以使用 commit and push 。
建议在这里只使用commit。待整个任务完成后统一push。
如果不习惯上面的样式。可以把这里勾掉。就可以变成svn提交的风格
注释请统一标准格式:
①开发完成度:100%
②情况说明:
1.完成功能开发
2.财务接口等待财务平台部署后联调
③存在问题和风险:
完成一个任务后,使用push将本地仓库提交到远程仓库。注意解决冲突
5.6 冲突管理
多人协作开发的情况下,往服务器推送更新时难免出现冲突,所以推送之前需要解决服务器端的最新版本和本地仓库的冲突。Pull操作就是把服务器端的更新拉拢到本地仓库进行合并,解决好合并冲突后,就可以顺利push到服务器分支了。
假设现在Mairo兄弟在用GIT协作开发NewSuperMairoBro游戏,目前服务器端的mushroom.java文件的内容如下:
MairoBro克隆出代码后,Mairo哥哥做了如下修改
Mairo弟弟做了如下修改
然后Mairo弟弟先push代码,Mairo哥哥使用pull来合并本地仓库和远程仓库,将发行文件出现冲突,此时GIT会自动合并冲突的文件,如下图所示:
很明显自动合并的冲突文件不能直接使用,我们可以手动调整,右键发生冲突的文件,选择Team -> Merge Tool
第一项是将GIT自动合并过的文件和服务器端文件进行对比
第二项是用本地最新版本的文件和服务器端文件进行对比,建议用此项
接下来就是熟悉的对比界面
Mairo哥哥将冲突文件修改如下
然后右键点击此冲突文件,选择Team -> Add to index再次将文件加入索引控制,此时文件已经不是冲突状态,并且可以进行提交并push到服务器端
解决合并冲突后,Mairo弟弟只需要将服务器中合并后的版本pull到本地,就完成了一次协作开发的代码合并。从历史记录中可以看到,从mushroom开始历史进入分支,先是mushroomA的记录,然后是mushroomB的记录,最后历史分支合并。
网上参考资料很多。再此不在赘述。请大家根据自己实际开发需要进行学习。
EGIT使用教程
https://my.oschina.net/doloop/blog/221800
下面几篇文章介绍了SourceTree工具,开发人员可以不必关心。
http://blog.csdn.net/uxyheaven/article/details/50373076
SourceTree里GitFlow的使用
http://blog.csdn.net/victor_barnett/article/details/51211282
使用Gitlab和SourceTree进行版本控制
http://zhan.renren.com/geekstation?gid=3602888498049268046&checked=true