git入门与实践

20
Git 入门与实践 梁超

Upload: lc2009

Post on 27-Jun-2015

363 views

Category:

Engineering


15 download

DESCRIPTION

Git入门、最佳实践以及实现原理

TRANSCRIPT

Page 1: Git入门与实践

Git 入门与实践梁超

Page 2: Git入门与实践

�  �  大纲

• 关于版本控制 �  �  � 

• 入门操作及原理 � 

• 分支操作及原理 � 

• 其它常用命令 � 

• 更深入的理解 � 

• 团队场景演示 � 

• 总结回顾

Page 3: Git入门与实践

关于版本控制

01

Page 4: Git入门与实践

�  �  关于版本控制 �  �  �  �  �  �  � 

VS

集中式版本控制与分布式版本控制的区别 � 

Git的诞生历史

集中式版本控制

分布式版本控制

集中式版本控制

优点:统一的集中式版本仓库,可以协作管理

缺点:单点故障,有丢失数据风险,不能离开网络,每次获取版本信息都要通过网络,速度不够快

!分布式版本控制

优点:完整镜像克隆,数据安全性高。几乎所有操作都是本地执行,不用联网,操作速度快

Page 5: Git入门与实践

入门操作及原理

02

Page 6: Git入门与实践

�  �  创建第一个项目 �  �  �  �  �  �  � 1.基础配置 � 

2.创建一个版本库 � 

3.添加修改文件并提交

VS

基本步骤:

1. 在工作目录中修改某些文件。

2. 对修改后的文件进行快照,然后保存到暂存区域。

3. 提交更新,将保存在暂存区域的文件快照永久转储到 Git 目录中。

Page 7: 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

Page 8: Git入门与实践

分支操作及原理

03

Page 9: Git入门与实践

�  �  本地分支的使用 �  �  �  �  �  �  � 

分支基础操作: 创建 - 查看 - 切换 - 删除 - 合并 - 衍合

1.每次提交master都向前移动一步 2.新建一个分支并切换到分支HEAD指向 3. 对dev分支进行修改

4. 将master和dev进行了快速合并5. 删除dev分支就留下了干净的master

Page 10: Git入门与实践

�  �  提交对象的状态 �  �  �  �  �  �  � 

Page 11: Git入门与实践

�  �  合并与衍合 �  �  �  �  �  �  � 

VS �  �  � 

合并

衍合

进行线上分支合并时,一律使用 git merge —no-ff,保留合并时间戳

rebase的作用是为了构造干净的提交历史,一般用于帮助别人维护项目,将分支信息合并权利交给主开发者用,把rebase当成一种在推送之前清理提交历史的手段

******** 一定不要在push到远程以后进行rebase,这样会使开发历史变得混乱不堪

Page 12: Git入门与实践

�  �  远程分支 �  �  �  �  �  �  � 

远程分支是对远程仓库中的分支的索引,它们是一些无法移动的本地分支;只有在 Git 进行网

络交互时才会更新。远程分支就像是书签,提醒着你上次连接远程仓库时上面各分支的位置

Page 13: 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.工作场景的灵活发挥

Page 14: Git入门与实践

其它常用命令

04

Page 15: Git入门与实践

�  �  其它常用操作 �  �  �  �  �  �  � 

·临时存储Stashing

·重写历史

·里程碑Tag

·忽略特殊文件

Page 16: Git入门与实践

更深入的理解

05

Page 17: Git入门与实践

�  �  底层原理 �  �  �  �  �  �  � 

Git本质是一套内容寻址系统

整个核心在.git目录中

Git存储对象原理

!

几个有用命令:

git hash-object -w 存储数据对象

git cat-file -p 查看数据对象

git cat-file -t 查看数据对象类型

Page 18: Git入门与实践

总结

06

Page 19: Git入门与实践

�  �  推荐资源 �  �  �  �  �  �  � 

Pro Git中文版

廖雪峰教程

Git简易指南

图解Git

Git Community Book 中文版

Git权威指南

Git Cheatsheet 中文版

一个成功的分支模型

命令行工具Tig

客户端工具SourceTree

Page 20: Git入门与实践

QA