版本管理工具介绍Git篇课件.ppt

上传人:牧羊曲112 文档编号:3404635 上传时间:2023-03-12 格式:PPT 页数:30 大小:398KB
返回 下载 相关 举报
版本管理工具介绍Git篇课件.ppt_第1页
第1页 / 共30页
版本管理工具介绍Git篇课件.ppt_第2页
第2页 / 共30页
版本管理工具介绍Git篇课件.ppt_第3页
第3页 / 共30页
版本管理工具介绍Git篇课件.ppt_第4页
第4页 / 共30页
版本管理工具介绍Git篇课件.ppt_第5页
第5页 / 共30页
点击查看更多>>
资源描述

《版本管理工具介绍Git篇课件.ppt》由会员分享,可在线阅读,更多相关《版本管理工具介绍Git篇课件.ppt(30页珍藏版)》请在三一办公上搜索。

1、版本管理工具介绍Git篇,2023/3/12,版本管理工具是干什么用的?,备份文件(U盘)记录历史(回到过去)多端共享(苹果)独当一面(一个英雄)团队协作(多个英雄),2023/3/12,版本管理工具发展历史,cvs 始祖、集中式、1985svn集大成者、集中式、2000Gitgeek主流、分布式、2005githubgeek社区、托管网站、2008,2023/3/12,版本回退,我们不断的修改,不断的提交,不断的更新到版本库中,假如线上的代码突然挂了,我需要回到上一个版本,或者需要回到某一个版本,这个时候需要怎么弄?你能想得到的,git都可以做得到,2023/3/12,git diff,gi

2、t diff 查看工作目录与索引区(当前暂存区)文件之间的差异git diff-cached 查看索引区与本地git仓库之间的差异git diff HEAD 显示工作目录与本地git仓库之间的差异git diff HEAD 比较上次提交 和 git diff HEAD1同等git diff HEAD2 比较上2次提交git diff-stat 显示修改的文件的个数和行数git difftool 使用图形工具来显示文件的差异(需要安装diff.tool),2023/3/12,历史提交对比,git diff commit-ID 将指定的某次提交与当前的目录对比git diff commit1 co

3、mmit2将两次提交的内容相比,git diff commit2 commit1 比较的结果不一样,是相反的(线上提工单的时候应该就用的这个)也等价于 gti diff mit2 如何省略任意一个commit 则默认使用HEAD代替commit 可以是简写的commit 哈希值,也可以是HEAD。其中HEAD代表最后一次提交,HEAD代表最后一次提交的父提交,HEAD1代表最后一次提交的父提交,HEAD1等价于HEAD,HEAD2代表倒数第二次提交,以此类推HEAD HEAD100。如果git status 告诉你有文件被修改过了以后,则可以用git diff 来查看修改的内容,2023/3/

4、12,git log,线上代码突然怪了,这个时候需要怎么弄?git log(觉得太乱?加下面的参数试试)-pretty=oneline-graph-abbrev-commit-decorate-color-graph-pretty=format:%Cred%h%Creset-%C(yellow)%d%Creset%s%Cgreen(%cr)%C(bold blue)%Creset-abbrev-commit(这是神马),2023/3/12,版本号,3628164.882e1e0 commit idgit和SVN不一样,Git的commit id不是1,2,3递增的数字,而是一个SHA1计算出来

5、的一个非常大的数字,用十六进制表示,而且你看到的commit id和我的肯定不一样,以你自己的为准。为什么commit id需要用这么一大串数字表示呢?因为Git是分布式的版本控制系统,后面我们还要研究多人在同一个版本库里工作,如果大家都用1,2,3作为版本号,那肯定就冲突了。,2023/3/12,时间线,我们在每提交一个新版本的时候,可以理解为一条时间线(git其实就是这样做的),我们慢慢往前走,走到一个点,做一个标记,这样就会很清新看到自己所走过的路了(TortoiseGit,这个工具就可以清晰的看到),2023/3/12,git reset,git reset-hard HEAD 时光穿

6、梭到上一个版本(HEAD 永远代表当前版本,你如果穿梭了时空,也就回重新指向穿梭后的版本)git reset-hard commit-id(这里的版本号,写前面几位就可以了,保持唯一就行,git会自动去找,一般写7位)这个时候,你如果找出了线上的问题,又需要回到最新版本,这个时候查看log也找不到最新版本,这可怎么办别急,还是那句话,你能想到的,git都可以办得到。可以用git reflog 试试,因为他会记录你每一次操作,这个时候你就可以找到你的版本号了。happy 吧!,2023/3/12,时间线,我们在每提交一个新版本的时候,可以理解为一条时间线(git其实就是这样做的),我们慢慢往前走

7、,走到一个点,做一个标记,这样就会很清新看到自己所走过的路了(TortoiseGit,这个工具就可以清晰的看到),2023/3/12,工作区和索引区(暂存区)和版本库,git和其他版本控制系统,如SVN的一个不同之处就是有暂存区的概念,暂存区是GIT 非常重要的概念,弄明白了暂存区,就弄明白了GIT 的很多操作到底干了什么(请务必把把这一点弄明白),2023/3/12,管理修改,1、为什么git 比其他版本控制系统设计得优秀因为git跟踪并管理的是修改,而并不是文件2、什么是修改?新增一行、删除一行、更改了字符、删除一些,增加一些、甚至创建一个新文件也是一个修改3、文件alter-git ad

8、d-alter-commit 这个时候由哪里提交到哪里,提交的是什么?,2023/3/12,撤销修改,根据”澳姐,你又胖了“举个例子“需要用到的命令git checkout-file(丢弃掉工作区文件 文件修改)(和git checkout name 的区别)git reset HEAD file(把暂存区的修改撤销掉unstage,重新放回到工作区),2023/3/12,删除文件,git rm(rm-rf)基本操作命令需要学习有两种情况,1、是需要删除版本库文件,需要delete-add-commit2、删除了不该删除的文件(又找不到备份文件),上面学过,git reset HEAD fil

9、e 一样可以找回来,如果add了,只要没有commit,依然可以重复撤销修改的操作,2023/3/12,远程仓库,1、添加远程仓库2、从远程仓库克隆,2023/3/12,分支管理,但Git的分支是与众不同的,无论创建、切换和删除分支,Git在1秒钟之内就能完成!无论你的版本库是1个文件还是1万个文件。(其实其他的版本管理工具都有,但是:比蜗牛还慢),2023/3/12,创建与合并分支,你已经知道,每次提交,Git都把它们串成一条时间线,这条时间线就是一个分支。HEAD严格来说不是指向提交,而是指向master,master才是指向提交的,所以,HEAD指向的就是当前分支。,2023/3/12,

10、创建与合并分支,2023/3/12,创建与合并分支,git branch 查看分支git branch 创建分支git checkout 切换分支git checkout-b 创建+切换分支git merge 合并某分支到当前分支git branch-d(-D)删除分支,2023/3/12,Git分支模式,主要分支辅助分支,2023/3/12,主要分支,中央仓库中有两个长期的分支:masterdevelopmaster用作生产分支,里面的代码是准备部署到生产环境的。develop是可交付的开发代码,也可以看成是用于集成分支,每晚构建从develop获取代码。当develop分支中的代码足够稳定

11、的时候,就将改动合并到master分支,同时打上一个标签,标签的名称为发布的版本号。,2023/3/12,辅助分支,通过辅助分支来帮助并行开发,和主要分支不同,这些分支的生命周期是有限的:1、特性分支(开发需求的分支,从develop分出,最终必需合回develop)git branch-b(创建分支1,从分支2分出)2、发布分支(一般从develop中分出,最终必需合回develop 和master,发布分支以release-*的方式命名,包括一些小bug的修正和发布的元信息【版本号,发布日期等】)3、紧急修复分支(一般从master分出,必需合并回develop(如果存在发布分支,则需要合

12、并到发布分支【因为发布分支最终会合并到develop】)和master),2023/3/12,git stash,stash 是干什么的?为什么要用stash?git stash git stash listgit stash apply 默认当stash0git stash pop,2023/3/12,git merge,fast-forward git直接把HEAD指针指向合并分支的头,完成合并。-no-ff:不使用fast-forward方式合并,保留分支的commit历史-squash:使用squash方式合并,把多次分支commit历史压缩为一次(压缩以后,还需要重新commit一次

13、,不然只是合并过来在暂存区里面的),2023/3/12,解决冲突,2023/3/12,标签管理,git tag-a-m Remark commit-id-a 指定标签名-m 指定说明文字-s 用私钥签名一个标签(签名采用必需安装)git show 查看tag信息git tag-d tagName 删除本地taggit push origin 把tag提到远程分支git push origin-tags 把所有tag提到远程分支git push origin:refs/tags/删除远程分支tag,2023/3/12,自定义Git,忽略特殊文件.gitignore配置别名(-global 全局)

14、git config-global alias.st status(co,ci,br 等)配置Git的时候,加上-global是针对当前用户起作用的,如果不加,那只针对当前的仓库起作用。git config-global alias.lg log-color-graph-pretty=format:%Cred%h%Creset-%C(yellow)%d%Creset%s%Cgreen(%cr)%C(bold blue)%Creset-abbrev-commit,2023/3/12,其他,安装Git+运行配置创建版本库分支的衍合使用Github服务器上的GitGit 工具自定义 GitGit 与其他系统Git 内部原理,2023/3/12,ENDThanks!,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号