Git使用培训

分享目录:
Git是什么?
Git是一款免费、开源的分布式版本控制系统。
【参考文档:GitLab中文网】 http://www.git-scm.com.cn/

Git、GitHub、 GitLab关系?
1.GitHub:是一个面向开源的软件项目托管平台,使用Git做版本控制。
2.GitLab:是一个用于仓储管理的开源型系统,使用Git做版本控制。

区别:GitLab是可以部署到自己的服务器上,数据库等一切信息都掌握在自己手上,适合团队内部协作开发,GitLab可以看作个人版的GitHub。

Git的优势?
1.Git是本地离线存储、分布式的【Git与SVN的区别】
开发人员从服务器上克隆一个版本至本机的版本库,无网络环境时仍然能够提交文件,查看历史版本记录,创建项目分支等【体现了分布式】。
2.Git分支模式非常高效【使用心得】
SVN、TFS分支都是实际的多个文件目录,Git则仅仅是一份资源根据分支号来加载对应版本的资源代码。
3.VS、VSCode都已经集成了Git团队协作开发非常高效
Git的用户群?
1.项目开发人员 2.项目参与人员)
Git如何使用?
先了解下我们的用户人群:两大类(开发和非开发)
1.非开发人员(需求、测试、项目管理、销售人员等)
使用Tortoise[ˈtɔ:təs]客户端
2.开发人员
使用方式①Git命令②Tortois[ˈtɔ:təs]③VS集成的Git操作目录

开始分享:
一、服务端安装
采用GitLab作为Git的私有服务器
GitLab是专为Unix操作系统(Linux内核的Ubuntu、CentOS系统最常用)开发的,不能直接运行在Windows操作系统上,我们可以在Windows系统下构建Ubuntu、CentOS等虚机来搭建Gitlib服务端。
远古GitLab版本信息:服务器操作系统:安装在Linux内核Centos7.4 64位系统
GitLab版本 :GitLab CE 11.0.0(社区版免费)
【安装参考文档】https://blog.csdn.net/duyusean/article/details/80011540

服务端功能:1.Creat Group
2.Creat Project
3.Creat Member
4.Create Brabch
5.Creat Merge Request
6.Merge

二、客户端安装
Git客户端下载地址(32位 64位请对位安装):
客户端下载地址:https://git-scm.com/downloads
安装详解: https://blog.csdn.net/z306560366/article/details/79193524

TortoiseGit(TortoiseGit客户端要下载两个:安装程序和中文语言包)
客户端下载地址:https://tortoisegit.org/download
安装详解地址: https://blog.csdn.net/dengjin20104042056/article/details/81948099
使用详解地址: https://www.cnblogs.com/xuwenjin/p/8573603.html

1.Git客户端(Git GUI、 Git Bash[生成SSH等])
2.Git客户端插件:TortoiseGit([ˈtɔ:təs]一个是安装程序一个是中文语言包)
【本地安装包目录】\\192.168.0.2\tools\Git

三、常用命令解析:
1.Git Init 【初始化仓储】不推荐使用,采用服务端创建仓储,本地克隆方式进行项目管理
示例①: Git Init Club10_YL
2.Git Clone 【仓储资源克隆至本机】
示例①: Git Clone http://10.10.10.23/Club/Club10_YL.git
示例②: Git Clone git@10.10.10.23:Club/Club10_YL.git
示例说明: 第一种是Http方式进行Clone
第二种是SSH 方式进行Clone SSH:Source Shell的缩写是建立在应用层基础上的一种安全协议较HTTP更为安全。【Git Bash操作SSH相关】http://www.cnblogs.com/zheng577564429/p/8317524.html

3.Git Add . 【资源加入至暂存区】

4.Git Commit -m 'Memo' 【暂存区的变更资源提交至本地仓储】

5.Git Push 【本地变更的仓储资源推送至远端仓储服务器】

6.Git Pull 【拉去最新版本且嵌入至本地仓储Pull=Fetch+Merge】

7.Git Fetch 【提取最新版本先不嵌入】

8.Git Diff 【查询版本差异】

9.Git --Help 【Git 帮助】

四、注意事项:
1.忽略项目
问题表现:将一些无用的资源提交到了服务器 例如:bin文件 debug文件等 会导致无用的资源处理。
解决方案:① 增加忽略文件
.gitignore
②执行清楚缓存命令
git rm -r --cached .
git add .
git commit -m 'updateMemo'
【参考文档】https://www.cnblogs.com/kevingrace/p/5690241.html
2.冲突解决
Merge的时候如果有冲突是无法Merge的,需要在源分支上解决冲突【方法:将目标分支往源分支合并下就会提示冲突信息 此时可以解决 解决后再次申请 MergeRequest进行合并】
示例演示:Step1:Master Entity增加 属性 Memo 签入
Step2:Dev Entity增加 属性 Remark 签入
Step3:Create Merge Request: Dev Merge Into Master
创建的MR会提示无法合并,
解决冲突方式:可以本地解决冲突,可以服务器解决冲突

五、分支管理:
【使用心得】:项目发布采用发布Master版本的发布策略开展

采用Master发布策略 既 每次上线版本必须是Master版本。
对应的项目开发方式: 首次项目开发时 在Master上开发 上线后Master分支权限收回。仅限管理员操作。
首次上线后 创建Dev分支用于日常的项目开展(测试环境版本由Dev制作 预发布环境版本由Master制作)。
既: 有两个长期分支 Master 和 Dev 都是处于 Protected 状态下【Project Setting目录下设置 Protected Branches 】 需要合并走Merge Request 方式进行合并。

新需求开始后从Master主干建立一个功能分支V2.0 用于Team的项目功能开发。
当开发完毕需求进行测试环境测试时:合并至Dev由Dev制作测试包 进行测试。

当测试环境测试完毕无问题后即将上线时 备份Master[建立一个Backup_Master分支] 然后将Dev推送至Master 有Master制作预发布环境包 进行测试,测试通过后直接上线,有问题修复Bug【V2.0版本修复推送至Dev分支 做包测试 再推送至Master进行验收】
并列的新需求都可以从 Master继续建立分支 V3.0 V4.0.....

V2.0上线完成后 将Master主干 向V3.0 V4.0等各个分支推送一遍。
线上有紧急问题时 从Backup_Master上建立分支VFix_2.0 进行紧急修复
修复完成后 ① 推送至 Master ② 有Master再向各个分支同步一次确保 HotFix功能包含于各个分支。

【特殊管理】:Master创建出各个定制化分支【分支以项目名称命名】
例如:滑雪Master 创建分支:1.HuaXue_YuLin 2.HuaXue_XinJiang....
分支将作为各个定制化项目的主版本,在由主版本创建出对应的子开发分支例如:HuaXue_YuLin_Dev【主版本 和 子开发分支 将作废定制化项目的 两个固定分支】
有新需求时需要总主版本创建对应的功能分支,例如: HuaXue_YuLin_Fun_1
开发完成后合并至 HuaXue_YuLin_Dev 进行做包在测试环境测试
测试环境测试通过后 HuaXue_YuLin_Dev合并至 HuaXue_YuLin 进行预发布环境测试 无问题则发布 HuaXue_YuLin对应的版本。

【比较示例地址】:https://www.cnblogs.com/cheneasternsun/p/5952830.html

posted @ 2018-12-10 15:22  Mark.Yang  阅读(536)  评论(0)    收藏  举报