logo资料库

git使用教程.pdf

第1页 / 共77页
第2页 / 共77页
第3页 / 共77页
第4页 / 共77页
第5页 / 共77页
第6页 / 共77页
第7页 / 共77页
第8页 / 共77页
资料共77页,剩余部分请下载后查看
Git教程 Git教程 By 廖雪峰 史上最浅显易懂的Git教程! 为什么要编写这个教程?因为我在学习Git的过程中,买过书,也在⺴⽹网上Google了⼀一堆Git 相关的⽂文章和教程,但令⼈人失望的是,这些教程不是难 得令⼈人发指,就是简单得⼀一笔带 过,或者,只⽀支离破碎地介绍Git的某⼏几个命令,还有直接从Git⼿手册粘贴帮助⽂文档的,总 之,初学者很难找到⼀一个由浅⼊入深, 学完后能⽴立刻上⼿手的Git教程。 既然号称史上最浅显易懂的Git教程,那这个教程有什么让你怦然⼼心动的特点呢? ⾸首先,本教程绝对⾯面向初学者,没有接触过版本控制概念的读者也可以轻松⼊入⻔门,不必担⼼心 起步难度; 其次,本教程实⽤用性超强,边学边练,⼀一点也不觉得枯燥。⽽而且,你所学的Git命令是“充 分且必要”的,掌握了这些东⻄西,你就可以通过Git轻松地完成你的⼯工作。 ⽂文字+图⽚片还看不明⽩白?有视频!!! 本教程只会让你成为Git⽤用户,不会让你成为Git专家。很多Git命令只有那些专家才明⽩白 (事实上我也不明⽩白,因为我不是Git专家),但我保证 这些命令可能你⼀一辈⼦子都不会⽤用 到。既然Git是⼀一个⼯工具,就没必要把时间浪费在那些“⾼高级”但⼏几乎永远不会⽤用到的命令 上。⼀一旦你真的⾮非⽤用不可了,到时候再 ⾃自⾏行Google或者请教专家也未迟。 如果你是⼀一个开发⼈人员,想⽤用上这个世界上⺫⽬目前最先进的分布式版本控制系统,那么,赶快 开始学习吧! 关于作者 廖雪峰,⼗十年软件开发经验,业余产品经理,精通Java/Python/Ruby/Visual Basic/ Objective C等,对开源框架有深⼊入研究,著有《Spring 2.0核⼼心技术与最佳实践》⼀一书, 多个业余开源项⺫⽬目托管在GitHub,欢迎微博交流:@廖雪峰。 整理、排版:numbbbbb
Git教程 By 廖雪峰 Git简介! Git的诞⽣生! 集中式vs分布式! 安装Git! 在Linux上安装Git! 在Mac OS X上安装Git! 在Windows上安装Git! 创建版本库! 把⽂文件添加到版本库! ⼩小结! 时光机穿梭! ⼩小结! 版本回退! ⼩小结! ⼯工作区和暂存区! ⼩小结! 管理修改! ⼩小结! 撤销修改! ⼩小结! 删除⽂文件! 远程仓库! ⼩小结! 添加远程库! ⼩小结! 从远程库克隆! ⼩小结! 5 7 8 10 11 12 13 14 14 16 17 18 19 22 24 27 28 29 30 32 33 35 37 38 40 41 42 整理、排版:numbbbbb
Git教程 By 廖雪峰 分⽀支管理! 创建与合并分⽀支! ⼩小结! 解决冲突! ⼩小结! 分⽀支管理策略! 分⽀支策略! ⼩小结! Bug分⽀支! ⼩小结! Feature分⽀支! ⼩小结! 多⼈人协作! ⼩小结! 标签管理! 创建标签! ⼩小结! 操作标签! ⼩小结! 使⽤用GitHub! ⼩小结! ⾃自定义Git! 忽略特殊⽂文件! ⼩小结! 配置别名! ⼩小结! 搭建Git服务器! 43 44 47 49 51 53 54 54 55 57 58 59 60 63 64 65 67 68 68 69 69 70 71 72 73 74 75 整理、排版:numbbbbb
期末总结! Git教程 By 廖雪峰 77 整理、排版:numbbbbb
Git简介 Git教程 By 廖雪峰 Git是什么? Git是⺫⽬目前世界上最先进的分布式版本控制系统(没有之⼀一)。 Git有什么特点?简单来说就是:⾼高端⼤大⽓气上档次! 那什么是版本控制系统? 如果你⽤用Microsoft Word写过⻓长篇⼤大论,那你⼀一定有这样的经历: 想删除⼀一个段落,⼜又怕将来想恢复找不回来怎么办?有办法,先把当前⽂文件“另存 为……”⼀一个新的Word⽂文件,再接着改,改到⼀一定程度,再“另存为……”⼀一个新⽂文件, 这样⼀一直改下去,最后你的Word⽂文档变成了这样: 过了⼀一周,你想找回被删除的⽂文字,但是已经记不清删除前保存在哪个⽂文件⾥里了,只好⼀一个 ⼀一个⽂文件去找,真⿇麻烦。 看着⼀一堆乱七⼋八糟的⽂文件,想保留最新的⼀一个,然后把其他的删掉,⼜又怕哪天会⽤用上,还不 敢删,真郁闷。 更要命的是,有些部分需要你的财务同事帮助填写,于是你把⽂文件Copy到U盘⾥里给她(也 可能通过Email发送⼀一份给她),然后,你继续修改 Word⽂文件。⼀一天后,同事再把Word⽂文 件传给你,此时,你必须想想,发给她之后到你收到她的⽂文件期间,你作了哪些改动,得把 你的改动和她的部分合并, 真困难。 于是你想,如果有⼀一个软件,不但能⾃自动帮我记录每次⽂文件的改动,还可以让同事协作编 辑,这样就不⽤用⾃自⼰己管理⼀一堆类似的⽂文件了,也不需要把⽂文件传来传去。如果想查看某次改 动,只需要在软件⾥里瞄⼀一眼就可以,岂不是很⽅方便? 这个软件⽤用起来就应该像这个样⼦子,能记录每次⽂文件的改动: 整理、排版:numbbbbb
Git教程 By 廖雪峰 版本 ⽤用户 说明 ⽇日期 1 2 3 4 张三 张三 李四 张三 删除了软件服务条款5 增加了License人数限制 财务部门调整了合同金额 延长了免费升级周期 7/12 10:38 7/12 18:09 7/13 9:51 7/14 15:17 这样,你就结束了⼿手动管理多个“版本”的史前时代,进⼊入到版本控制的20世纪。 整理、排版:numbbbbb
Git的诞⽣生 Git教程 By 廖雪峰 很多⼈人都知道,Linus在1991年创建了开源的Linux,从此,Linux系统不断发展,已经成为 最⼤大的服务器系统软件了。 Linus虽然创建了Linux,但Linux的壮⼤大是靠全世界热⼼心的志愿者参与的,这么多⼈人在世界各 地为Linux编写代码,那Linux的代码是如何管理的呢? 事实是,在2002年以前,世界各地的志愿者把源代码⽂文件通过diff的⽅方式发给Linus,然后由 Linus本⼈人通过⼿手⼯工⽅方式合并代码! 你也许会想,为什么Linus不把Linux代码放到版本控制系统⾥里呢?不是有CVS、SVN这些免 费的版本控制系统吗?因为Linus坚定地反对 CVS和SVN,这些集中式的版本控制系统不但 速度慢,⽽而且必须联⺴⽹网才能使⽤用。有⼀一些商⽤用的版本控制系统,虽然⽐比CVS、SVN好⽤用,但 那是付费的,和 Linux的开源精神不符。 不过,到了2002年,Linux系统已经发展了⼗十年了,代码库之⼤大让Linus很难继续通过⼿手⼯工⽅方 式管理了,社区的弟兄们也对这种⽅方式表达了强烈 不满,于是Linus选择了⼀一个商业的版本 控制系统BitKeeper,BitKeeper的东家BitMover公司出于⼈人道主义精神,授权Linux 社区免 费使⽤用这个版本控制系统。 安定团结的⼤大好局⾯面在2005年就被打破了,原因是Linux社区⽜牛⼈人聚集,不免沾染了⼀一些梁 ⼭山好汉的江湖习⽓气。开发Samba的Andrew试图 破解BitKeeper的协议(这么干的其实也 不只他⼀一个),被BitMover公司发现了(监控⼯工作做得不错!),于是BitMover公司怒 了,要收 回Linux社区的免费使⽤用权。 Linus可以向BitMover公司道个歉,保证以后严格管教弟兄们,嗯,这是不可能的。实际情 况是这样的: Linus花了两周时间⾃自⼰己⽤用C写了⼀一个分布式版本控制系统,这就是Git!⼀一个月之内,Linux 系统的源码已经由Git管理了!⽜牛是怎么定义的呢?⼤大家可以体会⼀一下。 Git迅速成为最流⾏行的分布式版本控制系统,尤其是2008年,GitHub⺴⽹网站上线了,它为开源 项⺫⽬目免费提供Git存储,⽆无数开源项⺫⽬目开始迁移⾄至GitHub,包括jQuery,PHP,Ruby等 等。 历史就是这么偶然,如果不是当年BitMover公司威胁Linux社区,可能现在我们就没有免费 ⽽而超级好⽤用的Git了。 整理、排版:numbbbbb
集中式vs分布式 Git教程 By 廖雪峰 Linus⼀一直痛恨的CVS及SVN都是集中式的版本控制系统,⽽而Git是分布式版本控制系统,集 中式和分布式版本控制系统有什么区别呢? 先说集中式版本控制系统,版本库是集中存放在中央服务器的,⽽而干活的时候,⽤用的都是⾃自 ⼰己的电脑,所以要先从中央服务器取得最新的版本,然后开始干 活,干完活了,再把⾃自⼰己 的活推送给中央服务器。中央服务器就好⽐比是⼀一个图书馆,你要改⼀一本书,必须先从图书馆 借出来,然后回到家⾃自⼰己改,改完了,再放回图书馆。 集中式版本控制系统最⼤大的⽑毛病就是必须联⺴⽹网才能⼯工作,如果在局域⺴⽹网内还好,带宽够⼤大, 速度够快,可如果在互联⺴⽹网上,遇到⺴⽹网速慢的话,可能提交⼀一个10M的⽂文件就需要5分钟, 这还不得把⼈人给憋死啊。 那分布式版本控制系统与集中式版本控制系统有何不同呢?⾸首先,分布式版本控制系统根本 没有“中央服务器”,每个⼈人的电脑上都是⼀一个完整的版本库,这 样,你⼯工作的时候,就 不需要联⺴⽹网了,因为版本库就在你⾃自⼰己的电脑上。既然每个⼈人电脑上都有⼀一个完整的版本 库,那多个⼈人如何协作呢?⽐比⽅方说你在⾃自⼰己电脑上改 了⽂文件A,你的同事也在他的电脑上改 了⽂文件A,这时,你们俩之间只需把各⾃自的修改推送给对⽅方,就可以互相看到对⽅方的修改 了。 和集中式版本控制系统相⽐比,分布式版本控制系统的安全性要⾼高很多,因为每个⼈人电脑⾥里都 有完整的版本库,某⼀一个⼈人的电脑坏掉了不要紧,随便从其他⼈人那⾥里复制⼀一个就可以了。⽽而 集中式版本控制系统的中央服务器要是出了问题,所有⼈人都没法干活了。 在实际使⽤用分布式版本控制系统的时候,其实很少在两⼈人之间的电脑上推送版本库的修改, 因为可能你们俩不在⼀一个局域⺴⽹网内,两台电脑互相访问不了,也可 能今天你的同事病了, 他的电脑压根没有开机。因此,分布式版本控制系统通常也有⼀一台充当“中央服务器”的电 脑,但这个服务器的作⽤用仅仅是⽤用来⽅方便“交换” ⼤大家的修改,没有它⼤大家也⼀一样干活, 只是交换修改不⽅方便⽽而已。 整理、排版:numbbbbb
分享到:
收藏