git使用培训
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
对象组成
类型:blob、tree、commit和tag 内容:对象文件的内容 大小:内容的大小
对象类型
blob
是一个文件 存储文件的内容
commit
是一个文件 包含时间、作者、一个tree的标识、
tree
是一个文件 类似一个目录 包含其它tree和blob
•
冲突(Conflict): 当开发者们同时提交对同一文件 的修改,而且版本系统不能把它们合并到一起, 就会引起冲突,就需要人工来进行合并。
合并(Merge): 合并就是把所有对文件的修改统 一到文件里
•
•
仓库(Repository): 仓库就是当前的和历史的处 于版本控制之下的文件所在的地方,通常在服务 器端。
计算机B 检出
Version 2
Version 1 file
分布式版本管理
版本库
版本服务器 个人计算机
版本服务器 版本库
Version 3 Version 2
Version 1
VCS:
又称DVCS(Distributed VCS) 有GIT、HG、bazaar等产品
问题:
乱成一团? 分支管理机制
再谈克隆版本库
git clone <url>
git init <repo name> git remote add origin <url> git fetch origin
git checkout origin/master
推送数据给远程版本库
.git目录
版本库:暂存区和对象库
第一个提交
创建文件Readme.txt 使用git add命令添加Readme.txt 使用git commit提交Readme.txt
修改文件
修改Readme.txt 使用git add命令添加Readme.txt 使用git commit提交Readme.txt
• 2005年以后
– Linus两个月开发出Git
Git的发展
• 大部份开源软件
• Github.com
• Gitcafe.com • Code.csdn.net • Coding.net
GIT设计目标
快速
高效 存储
满足大 规模项 目需要
简单
完全 分布
GIT工作模式
版本库初始化
个人计算机从版本服务器同步
工作版本(Working copy):从档案库中取出 一个本地端的复制,所有在档案库中的档案更动, 都是从一个工作版本中修改而来的,这也是这名 称的由来。
•
GIT介绍
Git的诞生
• 2002年以前
– Linus个人以diff方式管理
• 2002年至2005年
– BitMover公司的BitKeeper
暂存区
一个文件:.git/index
对象库
一个目录:.git/objects 存放版本库的各种对象
对象
对象
每个对象都是一个文件 每个对象都用40位的SHA-1值标识: 6ff87c4664981e4397625791c8ea3bbb5f2279a3 前两位作为目录名,后38位作为文件名
版本库
Version m Version … Version 1
远程协作(一)
创建文件Readme.txt 使用git add命令添加Readme.txt 使用git commit提交Readme.txt至本地版本库xt 使用git push保存Readme.txt到服务器版
本地版本库与服务器版本库(二)
GIT常用命令
获得版本库
git init git clone
查看信息
git help git log git diff
版本管理
git add git rm git commit
Hale Waihona Puke Baidu 远程协作
git pull git push
第三部分
GIT 进阶
再谈暂存区和对象库
版本服务器 版本库
Version 3 Version 2
Version 1
操作
90%以上的操作在个人计算机 添加文件 修改文件 提交变更 计算机A 查看版本历史等
计算机B 版本库 Version 3 检出
版本库同步
将本地修改传送 到版本服务器
检出 file
版本库
Version 3 Version 2 Version 1
分支合并
git merge <branch name>
冲突
冲突:修改了两个待合并分支里同一个文件的同一部分(比如同一行)
冲突产生
冲突解决
第五部分
团队协作
远程版本库
管理
git clone <url>:生成一个叫orgin的远程版本库 git remote –v:查看远程版本库信息 git remote add <remote repo name> <url>:指定版本库名字
版本管理的工作模式
发展过程
分布式(Git、 Mercurial)
健壮性
集中式(CVS, SVN)
单机版(文件 系统,RCS)
灵活性
本地版本管理
本地计算机
版本库:个人电脑/服务器
检出 file
版本库 Version 3
RCS:
Revision Control System 可追踪修改历史
Version 2
问题:如何协作?
Version 1
集中式版本管理
版本库:版本服务器 VCS:
Version Control System 又称CVCS(Central VCS) 有SVN、CVS、firefly等产品
计算机A 检出 file
版本服务器 版本库 Version 3
问题:
服务器会停 网络会不通
路径
.git/refs/remotes/
远程分支
路径
.git/refs/remotes/<remote repo name>/
访问方式
<remote repo name>/<branch name>:origin/master
跟踪分支(tracking branch)
git checkout <remote repo name>/<remote branch name>
再谈分支
概念
一个文件:位于.git/refs/heads目录下 文件内容:commit对象的SHA-1值
分支管理
创建分支:git branch <branch name>
删除分支:git branch –d <branch name>
在分支上工作
切换到分支
git checkout <branch name> 用分支对应的快照更新暂存区和工作区
GIT使用培训
谭宗威 2014-07-29
欢迎
今天的内容概述 1 2 3 4 5
• 版本管理的作用
• 常用版本管理介绍
• 版本管理的工作模式
• Git介绍
• Git日常工作模式
学习目标
• 版本管理的作用 • 掌握日常的操作 • 团队协作
版本管理的作用
为什么要版本管理?
文件管理 团队协作
历史追踪
暂存区相比对象库
新增文件(git add)
修改文件(git add)
删除文件(git rm) 一致(git commit)
git rm
GIT通常只会增加内容,不用担心丢 失曾经有的数据
GIT也支持彻底清除确认无效的数据
,属于更高级的内容
第四部分
分支管理
分支
概念
一个commit对象链:一条工作记录线
本地计算机 版本服务器 版本服务器
版本库
Version 3 Version 2 Version 1
①
git pull
版本库
Version 3 Version 2 Version 1
版本库
③
git push
Version n Version … Version 1
② git add、commit…
本地计算机 本地计算机 版本服务器
版本管理
GIT文件状态
GIT文件
已被版本库管理的文件
工作区
暂存区 检出文件
对象库
已修改
在工作目录修改GIT文件
修改文件
已暂存
对已修改的文件执行git暂存 操作,将文件存入了暂存区
暂存文件 提交文件
已提交
将已暂存的文件执行git提交 操作,将文件存入对象库
本地版本库与服务器版本库(一)
克隆版本库
示例
版本服务器:gitserver 版本服务器用户:gitusr
版本库:RCMSDoc
本地目录:F:\git
文件状态a
工作区
工作目录:.git文件夹所处目录
工作区
版本库
文件状态
未跟踪:处于工作目录,但未 被版本库管理的文件
已跟踪:已被版本库管理的文 件,可能存在于工作目录,也 可能不存在于工作目录中
版本库
Version m Version … Version 1
版本库
Version x Version … Version 1
版本库
Version x Version … Version 1
远程协作(二)
修改Readme.txt 使用git add命令添加Readme.txt 使用git commit提交Readme.txt 使用git pull获取服务器版本库更新 使用git push将Readme.txt保存至版本服务器
本地计算机 检出 file 版本服务器
版本库
Version 3 Version 2 Version 1
①
git pull
版本库
Version 3 Version 2 Version 1
② git add、commit…
本地计算机 版本服务器
版本库
file Version m Version … Version 1
父commit的标识
tag
是一个文件 包含一个commit的标识
案例
blob
tree
commit
对象模型
git status
工作区相比暂存区
新增文件
修改文件
删除文件 一致(git add)
暂存区仅保留对象库当前
分支的快照,git commit将
会替换当前快照,使得暂 存区与对象库的当前分支 最新更新一致
Version 2 Version 1
file
GIT文件存储
第二部分
GIT 基础
版本库结构
Tortoisegit设置
创建版本库
版本库:repository 创建方法
执行git init
示例
工作目录: E:\Repositories\GIT\RCMSDemo 在工作目录中点击鼠标右键
master
主分支
默认分支 主体功能开发
综合信息
一个文件:.git/refs/heads/master
文件内容:commit对象的SHA-1值
HEAD
当前commit对象引用
一个文件:.git/HEAD
文件内容: 分支引用(ref: refs/heads/master) commit对象的SHA-1值(4c9f4…)
冲突管理
版本发布
常用版本管理介绍
常见的版本管理软件
简 称
CVS VSS SVN Git TFS Mercurial ClearCase Perforce IBM Rational ClearCase Team Foundation Server
全 名
Concurrent Versions System Micorosoft Visual SourceSafe Subversion
git checkout –b <branch name> <remote repo name>/<remote branch name>
从远程版本库抓取数据
git fetch [remote repo name]
git fetch = git fetch origin 从远程仓库中拉取本地仓库中还没有的数据(所有分支) 需要执行git checkout跟踪远程分支,从而产生本地分支
检出 file
计算机A
计算机B 版本库 Version 3 检出
版本库
Version 3 Version 2 Version 1
Version 2 Version 1
file
协作模式
• 锁定模型 • 冲突合并模型
常用术语
• 分支(Branch): 在一个时间点,复制一份处于版 本控制之下的文件,从这之后,这两份拷贝就可 以独立的互不干扰的进行各自开发。 取出(Check-out): 一次“取出”,就是在本地 创建一份仓库的工作拷贝。 提交(Commit): 一次“提交”,将本地的修改 写回到仓库或合并到仓库。 • •