- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
LOGO 开源软件分布式版本控制器 GIT Linus的第二个伟大作品 大纲 版本控制器的前世今生 1 使用GIT的理由 2 理解工作区、暂存区和版本库 3 GIT对象库探秘 4 常规操作 5 版本控制器的前世今生 SVN GIT CVS 开启版本控制大爆发 ================== 诞生1985年荷兰阿姆斯特丹VU大学格伦(Dick Grune)教授与两名学生开发一个项目无法协调到一起,于是教授通过脚本语言RCS(针对单个文件的版本控制器)进行封装。cvs的成功导致了版本控制系统的大爆发。 集中式版本控制集大成者 ================== Subversion(svn),于2000年由collabnet公司资助开发以替代cvs。 1、svn拥有全局版本号 2、实现原子提交 3、文件名、文件和目录重命名不受限制 1991~2002年linus手工修补文件的方式维护代码,2002~2005开始使用分布式版本控制器bitkeeper。 2005年4月3日,开始开发git 2005年4月6日,项目发布 2005年6月16日,Linux内核2.6.12发布 使用GIT的理由 1、每日工作备份 2、异地协同工作 3、现场版本控制 4、避免引入辅助目录 5、重写提交说明 6、想吃后悔药 7、更好用的提交列表 git status 8、更好的差异比较 git diff 9、工作进度保存 (git stash | git stash pop | git stash clear) 10、代理svn提交实现移动办公 (git svn fetch | git svn rebase | git svn dcommit ) 11、无处不在的分页器 12、快 使用GIT的理由 演示 – 每日工作备份 1、创建git版本库 git clone –bare ~/repos/test.git 2、本地克隆 git clone root@:~/repos/test.git 3、新建文件,添加内容 echo ‘test git repos’ test.list 4、在版本库,增加追踪文件(test.list) git add test.list 5、提交到版本库 git commit –m ‘新增文件test.list’ 6、推送远程版本库 git push 7、在另外的机器上从远程版本库拉回数据,看第2点 使用GIT的理由 演示 – 避免引入辅助目录 在项目根目录创建.gitignore,配置语法: 以斜杠“/”开头表示目录 以星号“*”通配多个字符 以问号“?”通配单个字符 以方括号“[]”包含单个字符的匹配列表 以叹号“!”表示不忽略(跟踪)匹配到的文件或目录 例子: .gitignore 忽略git忽略文件 test/ 忽略目录及目录下的文件 /test/ 忽略根目录下test/及所有子目录、文件 !/test 始终不忽略,test目录 *.swp 忽略后缀.swp结尾的文件 使用GIT的理由 演示 – 重写提交说明想吃后悔药 重写提交说明: 提交文件 git commit –m ‘错误的说明’ 重写提交说明 git commit –amend –m ‘重新提交说明’ 修个某个历史提交的提交说明 git rebase -i commit-id^ 变基操作 想吃后悔药: 删除无用大文件 git rm –cached big.file 重写提交说明 git commit –amend –m ‘v1.1’ 理解工作区、暂存区和版本库 介于工作区和版本库之间,存在于.git/index。 除去根目录下.git目录的其他区域,叫工作区。 特指根目录下.git目录。 工作区 暂存区 版本库 理解工作区、暂存区和版本库 暂存区 stage Or index 工作区 对象库 版本库.git HEAD:Master 理解工作区、暂存区和版本库 一起探秘暂存区 实验步骤 1、初始化 git init 2、窥探版本库 ls .git,查找index文件 3、创建一个文件 touch test.list 4、添加到暂存区 git add test.list 5、再次窥探版本库 ls .git,查找index文件 6、窥探index文件内容 总结 1、文件.git/index实际上是一个包含文件索引的目录树 2、文件.git/index记录了文件名和文件的状态信息(时间戳和文件长度等) 3、文件的内容并没有存储在其中,而是保存在对象库.git/objects目录中 GIT对象库探秘 一起探秘GIT对象库 实验步骤 1、初始化版本库并进行2次任务提交(略) 2、查看神秘的日志数据 git log -2 --pretty=raw 3、查
文档评论(0)