Download - Git入门与实践
Git 入门与实践梁超
� � 大纲
• 关于版本控制 � � �
• 入门操作及原理 �
• 分支操作及原理 �
• 其它常用命令 �
• 更深入的理解 �
• 团队场景演示 �
• 总结回顾
关于版本控制
01
� � 关于版本控制 � � � � � � �
VS
集中式版本控制与分布式版本控制的区别 �
Git的诞生历史
集中式版本控制
分布式版本控制
集中式版本控制
优点:统一的集中式版本仓库,可以协作管理
缺点:单点故障,有丢失数据风险,不能离开网络,每次获取版本信息都要通过网络,速度不够快
!分布式版本控制
优点:完整镜像克隆,数据安全性高。几乎所有操作都是本地执行,不用联网,操作速度快
入门操作及原理
02
� � 创建第一个项目 � � � � � � � 1.基础配置 �
2.创建一个版本库 �
3.添加修改文件并提交
VS
基本步骤:
1. 在工作目录中修改某些文件。
2. 对修改后的文件进行快照,然后保存到暂存区域。
3. 提交更新,将保存在暂存区域的文件快照永久转储到 Git 目录中。
� � 基础操作浅析 � � � � � � � 1. 文件的状态变换 4.撤销修改
2. diff文件的修改 5.master和HEAD的含义
3. commit提交注释的规范性 6.查看日志
stage
work
ed489a47c3 b325c c10b9 da985
develop
git diff develop
master
HEAD
git diff git diff HEAD
git diff —staged
git diff da985 b325c
⋯
stage
work
HEAD
git reset —files
git checkout —files
git checkout HEAD —filesstage
work
ed489a47c3 b325c c10b9 da985
develop
—hard
master
HEAD
not —soft
git reset HEAD~3
⋯
master
HEAD
分支操作及原理
03
� � 本地分支的使用 � � � � � � �
分支基础操作: 创建 - 查看 - 切换 - 删除 - 合并 - 衍合
1.每次提交master都向前移动一步 2.新建一个分支并切换到分支HEAD指向 3. 对dev分支进行修改
4. 将master和dev进行了快速合并5. 删除dev分支就留下了干净的master
� � 提交对象的状态 � � � � � � �
� � 合并与衍合 � � � � � � �
VS � � �
合并
衍合
进行线上分支合并时,一律使用 git merge —no-ff,保留合并时间戳
rebase的作用是为了构造干净的提交历史,一般用于帮助别人维护项目,将分支信息合并权利交给主开发者用,把rebase当成一种在推送之前清理提交历史的手段
******** 一定不要在push到远程以后进行rebase,这样会使开发历史变得混乱不堪
� � 远程分支 � � � � � � �
远程分支是对远程仓库中的分支的索引,它们是一些无法移动的本地分支;只有在 Git 进行网
络交互时才会更新。远程分支就像是书签,提醒着你上次连接远程仓库时上面各分支的位置
� � 团队场景演示 � � � � � � �
!
场景:开发一个换肤项目
项目周期:两周
参与者:多人合作 !
git push origin master:theme
git co theme
git co master;git pull
git co theme; git rebase master
git co master; git merge theme
git push
git push origin :theme
git br -d theme | git push origin master:theme
git remote show origin
git remote prune origin
!
1.比较流行的分支模型 �
2.工作场景的灵活发挥
其它常用命令
04
� � 其它常用操作 � � � � � � �
·临时存储Stashing
·重写历史
·里程碑Tag
·忽略特殊文件
更深入的理解
05
� � 底层原理 � � � � � � �
Git本质是一套内容寻址系统
整个核心在.git目录中
Git存储对象原理
!
几个有用命令:
git hash-object -w 存储数据对象
git cat-file -p 查看数据对象
git cat-file -t 查看数据对象类型
总结
06
� � 推荐资源 � � � � � � �
Pro Git中文版
廖雪峰教程
Git简易指南
图解Git
Git Community Book 中文版
Git权威指南
Git Cheatsheet 中文版
一个成功的分支模型
命令行工具Tig
客户端工具SourceTree
QA