git使用培训ppt课件_第1页
git使用培训ppt课件_第2页
git使用培训ppt课件_第3页
git使用培训ppt课件_第4页
git使用培训ppt课件_第5页
已阅读5页,还剩60页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

.,Git使用培训,谭宗威2014-07-29,.,欢迎,.,今天的内容概述,.,学习目标,版本管理的作用掌握日常的操作团队协作,.,版本管理的作用,.,为什么要版本管理?,.,常用版本管理介绍,.,常见的版本管理软件,.,版本管理的工作模式,.,灵活性,健壮性,发展过程,.,本地计算机,版本库,本地版本管理,版本库:个人电脑/服务器RCS:RevisionControlSystem可追踪修改历史问题:如何协作?,Version3,Version2,Version1,file,检出,.,计算机A,file,检出,版本服务器,版本库,集中式版本管理,版本库:版本服务器VCS:VersionControlSystem又称CVCS(CentralVCS)有SVN、CVS、firefly等产品问题:服务器会停网络会不通,Version3,Version2,Version1,计算机B,file,检出,.,版本服务器,版本库,分布式版本管理,版本库版本服务器个人计算机VCS:又称DVCS(DistributedVCS)有GIT、HG、bazaar等产品问题:乱成一团?分支管理机制,Version3,Version2,Version1,计算机A,版本库,Version3,Version2,Version1,计算机B,版本库,Version3,Version2,Version1,file,检出,file,检出,.,协作模式,锁定模型冲突合并模型,.,常用术语,分支(Branch):在一个时间点,复制一份处于版本控制之下的文件,从这之后,这两份拷贝就可以独立的互不干扰的进行各自开发。取出(Check-out):一次“取出”,就是在本地创建一份仓库的工作拷贝。提交(Commit):一次“提交”,将本地的修改写回到仓库或合并到仓库。冲突(Conflict):当开发者们同时提交对同一文件的修改,而且版本系统不能把它们合并到一起,就会引起冲突,就需要人工来进行合并。合并(Merge):合并就是把所有对文件的修改统一到文件里仓库(Repository):仓库就是当前的和历史的处于版本控制之下的文件所在的地方,通常在服务器端。工作版本(Workingcopy):从档案库中取出一个本地端的复制,所有在档案库中的档案更动,都是从一个工作版本中修改而来的,这也是这名称的由来。,.,Git介绍,.,Git的诞生,2002年以前Linus个人以diff方式管理2002年至2005年BitMover公司的BitKeeper2005年以后Linus两个月开发出Git,.,Git的发展,大部份开源软件GGCC,.,GIT设计目标,.,版本服务器,版本库,GIT工作模式,版本库初始化个人计算机从版本服务器同步操作90%以上的操作在个人计算机添加文件修改文件提交变更查看版本历史等版本库同步将本地修改传送到版本服务器,Version3,Version2,Version1,计算机A,版本库,Version3,Version2,Version1,计算机B,版本库,Version3,Version2,Version1,file,检出,file,检出,.,GIT文件存储,.,第二部分GIT基础,.,版本库结构,.,Tortoisegit设置,.,创建版本库,版本库:repository创建方法执行gitinit示例工作目录:E:RepositoriesGITRCMSDemo在工作目录中点击鼠标右键.git目录版本库:暂存区和对象库,.,第一个提交,创建文件Readme.txt使用gitadd命令添加Readme.txt使用gitcommit提交Readme.txt,.,修改文件,修改Readme.txt使用gitadd命令添加Readme.txt使用gitcommit提交Readme.txt,.,克隆版本库,示例版本服务器:gitserver版本服务器用户:gitusr版本库:RCMSDoc本地目录:F:git,.,文件状态a,版本管理,工作区工作目录:.git文件夹所处目录文件状态未跟踪:处于工作目录,但未被版本库管理的文件已跟踪:已被版本库管理的文件,可能存在于工作目录,也可能不存在于工作目录中,.,GIT文件状态,修改文件,暂存文件,提交文件,检出文件,GIT文件已被版本库管理的文件已修改在工作目录修改GIT文件已暂存对已修改的文件执行git暂存操作,将文件存入了暂存区已提交将已暂存的文件执行git提交操作,将文件存入对象库,.,本地计算机,版本库,Versionm,Version,Version1,file,本地版本库与服务器版本库(一),版本服务器,版本库,Version3,Version2,Version1,本地计算机,版本库,Version3,Version2,Version1,file,检出,gitadd、commit,gitpush,gitpull,版本服务器,版本库,Versionm,Version,Version1,.,远程协作(一),创建文件Readme.txt使用gitadd命令添加Readme.txt使用gitcommit提交Readme.txt至本地版本库xt使用gitpush保存Readme.txt到服务器版,.,版本服务器,版本库,Versionx,Version,Version1,本地计算机,版本库,Versionm,Version,Version1,本地版本库与服务器版本库(二),版本服务器,版本库,Version3,Version2,Version1,本地计算机,版本库,Version3,Version2,Version1,gitadd、commit,gitpush,gitpull,版本服务器,版本库,Versionn,Version,Version1,gitpush,gitpull,本地计算机,版本库,Versionx,Version,Version1,.,远程协作(二),修改Readme.txt使用gitadd命令添加Readme.txt使用gitcommit提交Readme.txt使用gitpull获取服务器版本库更新使用gitpush将Readme.txt保存至版本服务器,.,GIT常用命令,获得版本库gitinitgitclone版本管理gitaddgitrmgitcommit远程协作gitpullgitpush,查看信息githelpgitloggitdiff,.,第三部分GIT进阶,.,再谈暂存区和对象库,暂存区一个文件:.git/index对象库一个目录:.git/objects存放版本库的各种对象,.,对象,对象每个对象都是一个文件每个对象都用40位的SHA-1值标识:6ff87c4664981e4397625791c8ea3bbb5f2279a3前两位作为目录名,后38位作为文件名对象组成类型:blob、tree、commit和tag内容:对象文件的内容大小:内容的大小,.,对象类型,blob是一个文件存储文件的内容tree是一个文件类似一个目录包含其它tree和blob,commit是一个文件包含时间、作者、一个tree的标识、父commit的标识tag是一个文件包含一个commit的标识,.,案例,.,blob,.,tree,.,commit,.,对象模型,.,gitstatus,工作区相比暂存区新增文件修改文件删除文件一致(gitadd)暂存区相比对象库新增文件(gitadd)修改文件(gitadd)删除文件(gitrm)一致(gitcommit),暂存区仅保留对象库当前分支的快照,gitcommit将会替换当前快照,使得暂存区与对象库的当前分支最新更新一致,.,gitrm,GIT通常只会增加内容,不用担心丢失曾经有的数据GIT也支持彻底清除确认无效的数据,属于更高级的内容,.,第四部分分支管理,.,分支,概念一个commit对象链:一条工作记录线,.,master,主分支默认分支主体功能开发,综合信息一个文件:.git/refs/heads/master文件内容:commit对象的SHA-1值,.,HEAD,当前commit对象引用一个文件:.git/HEAD文件内容:分支引用(ref:refs/heads/master)commit对象的SHA-1值(4c9f4),.,再谈分支,概念一个文件:位于.git/refs/heads目录下文件内容:commit对象的SHA-1值分支管理创建分支:gitbranch删除分支:gitbranchd,.,在分支上工作,切换到分支gitcheckout用分支对应的快照更新暂存区和工作区,.,分支合并,gitmerge,.,冲突,冲突:修改了两个待合并分支里同一个文件的同一部分(比如同一行),.,冲突产生,.,冲突解决,.,第五部分团队协作,.,远程版本库,管理gitclone:生成一个叫orgin的远程版本库gitremotev:查看远程版本库信息gitremoteadd:指定版本库名字路径.git/refs/remotes/,.,远程分支,路径.git/refs/remotes/访问方式/:origin/master跟踪分支(trackingbranch)gitcheckout/gitcheckoutb/,.,从远程版本库抓取数据,gitfetchremotereponamegitfetch=gitfetchorigin从远程仓库中拉取本地仓库中还没有的数据(所有分支)需要执行gitcheckout跟踪远程分支,从而产生本地分支,.,再谈克隆版本库,gitclonegitinitgitremoteaddorigingitfetchorigingitcheckoutorigin/master,.,推送数据给远程版本库,gitpushremotereponamebranchname将本地分支推送给的分支gitpush如果当前分支为跟踪分支,则推送至其跟踪的远程分支否则=gitpushorigin,将当前分支推送给origin,在origin

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论