本技术文档主要讲的是关于git的基本使用以及git工做流等的认识和实际开发过程当中的冲突解决等。 1. Git与代码托管平台 1.1 Git与Github比较 Git: 是一个版本管理工具 , 只在本地使用的一个版本管理工具,其做用就是可让你更好的管理你的程序, 好比你原来提交过的内容,后面虽然修改过,可是经过git这个工具,能够把你原来提交的内容重现出来,这 样对于你后来才意识到的一些错误进行更改,进行还原。 GitHub (官网: https://github.com/): 是一个基于Git的远程代码托管平台(网站),能够在github上创建一个远程库,能够将本地库的代码提交到远程库,这样你的每次提交,别人也均可以看到你的代码,同时别人也能够帮你修改你的代码,这种开源的 方式很是方便程序员之间的交流和学习。 1.2 Git托管平台 局域网: GitLab(可自行搭建) 外网环境: GitHub 码云 1.3 本地库和远程库 团队内部协做开发git
远程跨团队协做开发程序员
2. Git命令行操做 2.1 打开命令行窗口 安装Git后,在资源管理器的空白处,单击鼠标右键打开窗口,点击 Git Bash Here ,打开Git命令行窗口, 在窗口中可直接使用Linux命令操做:github
2.2 初始化git本地库 命令:git init 效果:
工具
注意: .git 目录中存放的是本地库相关核心配置文件,也不要随意删除与修改学习
.git 目录仓库目录说明:测试
hooks目录:脚本文件的目录。网站
info目录:保存了不但愿在 命令行
.gitignore 文件中管理的忽略模式的全局可执行文版本控制
logs目录:日志目录指针
objects目录:存储全部数据内容
refs目录:存储指数据(分支)的提交对象的指针config文件包含了项目特有的配置选项description文件仅供 GitWeb 程序使用
HEAD文件指向当前分支
做用:只为区分不一样开发人员的身份信息
用户名:zhangyang
Email:919081924@qq.com
注意:这里的签名信息和登陆远程库的账号和密码没有任何关系(码云,Github)
命令:
用于查看工做区、暂存区的状态
根据状态提示,往仓库中建立一个demo01.txt文件,文件保存一些内容(按i插入内容,按:wq,保存并退出, 按 ':q!' 不保存强制退出)
再git status查看状态提示 untracked files有未追踪文件)
3.2添加到暂存区
3.2 提交到本地库 将暂存区提交到本地库
命令:git commit [-m “提交说明信息”]<file name>
修改demo1.txt文件内容,在查看状态
4. Git分支管理
4.1什么是git分支 在版本控制过程当中,使用多条线同时推动多个任务 以下图:
4.2 Git分支的好处? 同时并行推动多个功能开发,提升开发效率 各个分支在开发过程当中,若是某一个分支开发失败,不会对其余分支有任何影响。失败的分支删除从新开始 便可。 4.3 Git分支操做 查看分支: git branch -v 建立分支: git branch 新分支名 删除分支(删除的分支不是当前正在打开的分支): git branch -d 分支名 切换分支: git chckout 分支名 合并分支: 第1步:切换到接受修改的分支上 命令: git checkout 须要接受的分支名 第2步:执行 merge 命令 命令: git merge 有新内容的分支名 解决冲突: 冲突的表现:以下图
冲突的解决: 第1步:编辑文件,删除特殊符号 第2步:把文件修改到满意为止,保存退出第3步:git add 文件名 第4步:git commit -m "日志信息" 注意:此时 commit 后面必定不要有文件名 5 Git 工做流与实战演练 5.1什么是工做流 由于项目开发中,多人协做,分支不少,虽然各自在分支上互不干扰,可是咱们总归须要把分支合并到一块儿,并且真实项目中涉及到不少问题,例如版本迭代,版本发布,bug 修复等,为了更好的管理代码,须要制定一个工做流程,这就是咱们说的工做流,也有人叫它分支管理策略。 "工做流程"在英语里,叫作"workflow"或者"flow",原意是水流,比喻项目像水流那样,顺畅、天然地向前流动,不会发生冲击、对撞、甚至漩涡。 5.2GitFlow工做流说明
Gitflow 工做流经过为功能开发、发布准备和维护设立了独立的分支,让发布迭代过程更流畅。严格的分支模型也为大型项目提供了一些很是必要的结构。
剩下要说明的问题围绕着这2个分支的区别展开。 5.3 分支种类
主干分支 master 主要负责管理正在运行的生产环境代码。 永远保持与正在运行的生产环境 彻底一致。热修复分支 hotfix 主要负责管理生产环境下出现的紧急修复的代码。 从主干分支分出,修 理完毕并测试上线后,并回主干分支。并回后,视状况能够删除该分支。 开发分支 develop 主要负责管理正在开发过程当中的代码。通常状况下应该是最新的代码。 准生产分支(预发布分支) release 较大的版本上线前,会从开发分支中分出准生产分支,进行最后阶段的集 成测试。该版本上线后,会合并到主干分支。生产环境运行一段阶段较稳定后 能够视状况删除。 功能分支 feature 为了避免影响较短周期的开发工做,通常把中长期开发模块,会从开发分支 中独立出来。 开发完成后会合并到开发分支。 5.4 工做流实战演练
5.4.1第1步: 建立开发分支 使用 经理 用户,在本地仓库中新建立一个 develop 分支 项目右键 → Git → Repository → Branches 点击 New Branch 建立分支 框中输入新分支名:develop , Checkout branch 勾选后,会立刻切换到新建立的这个分支 右下角可查看到当前所在分支: develop
5.4.2第2步: 经理 develop分支止开发新功能
5.4.3第3步: 经理 提交到本地库并推送到远程develop分支
上面点击 commit and Push 后,会弹出下面窗口,提示进行 push 到远程库
在码云上 切换develop分支查看
5.4.3第4步: 总监 拉取远程库develop分支代码到本地develop分支
总监先在本地建立好develop分支 总监再进行远程库develop分支代码到本地develop分支
5.4.4第5步: 总监 切换回主分支master(本地库)
项目右键 → Git → Repository → Branches
以下已经切换成功:
5.4.5第6步: 总监 将本地develop合并到mater分支上 项目右键 → Git → Repository → Merge Changes...
合并结果:
5.4.6第7步: 总监 将合并后的master推送到远程库master
项目右键 → Git → Repository → push