Git学习总结

Git学习总结

为什么要进行版本控制?

当我们在实际编程时,往往有回滚到上一个版本来比较两个版本差异的需求,这时就需要我们备份软件版本历史,在版本控制系统出现之前,我们要保存文件版本只能通过朴素的复制粘贴来完成,费时费力费空间,还难以看出版本的变化历程,因此,我们需要版本控制系统。

版本控制系统的类别

集中式版本控制系统

仓库存储于独立的服务器,支持多开发者之间的协作。在分布式版本控制系统出现之前,它是主流VCS,但存在一些弊端:

  1. 所有的文件存储与一个服务器中,一旦服务器崩溃,数据将遗失
  2. 开发者每次想要开发项目,都要先从远程服务器中拉取,耗时

而分布式版本控制系统很好的改善了这两个问题。

分布式版本控制系统——Git

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

我在此引用老师ppt中的示例图

可以看到Git比集中式版本控制系统多了两个存储区,暂存区和本地存储仓库

本地存储仓库是本地的CMDB,暂存区用于隔离工作目录和Git仓库

独立于远程仓库建立一个属于自己的本地仓库,这就解决了上面集中式版本控制系统所遇到的问题

Git存储原理

在Git中,版本的变化是以有向树的形式展示的,从远程仓库clone项目的同时也会复制整个对象树。在对象树中,每一个节点对应一个项目的版本,我们可以把节点理解为指针,指向它所对应的文件。在实际工作中,有很多文件在整个版本控制路程中很少修改甚至根本不做修改,因此,为了节省空间,减少存储冗余文件,在一次commit时未做修改的文件仍会被新版本节点所指,即多个版本可以指向同一个文件。

此外,Git与集中式版本管理系统还有些不同,即Git存储发生变化的整个文件,而集中式版本管理系统只存储改变的代码行,这意味着Git省去了两个文件相互比较从而抽出新的代码行的操作,变得更加高效。

Git指令
  • git add :添加文件至暂存区
  • git commit :提交新版本至本地仓库
  • git push :提交新版本至远程仓库
  • git clone :从远程仓库克隆一个相同的版本库至本地仓库,从无到有
  • git pull :从远程仓库拉取更新的分支,并于本地分支合并,从有到更新
  • git fetch :从远程仓库拉取更新的分支,但不与本地分支合并
  • git merge :将两个分支合并 注:git pull = git fetch + git merge
  • git diff :比较文件在暂存区和工作区的不同
  • git reset : 回滚到之前版本,撤销提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值