git的学习笔记(1)

1.什么是git

  • Git是一个免费的、开源的分布式版本控制系统,可以快速高效地处理从小型到大型的各种项目。
  • Git易于学习,占地面积小,性能极快。 它具有廉价的本地库,方便的暂存区域和多个工作流分支等特性。

2.什么是版本控制工具(集中式和分布式)

  • 版本控制是一种记录文件内容变化,以便将来查阅特定版本修订情况的系统。
  • 版本控制其实最重要的是可以记录文件修改历史记录,从而让用户能够查看历史版本, 方便版本切换。

1)集中式版本控制工具

  • 集中化的版本控制系统诸如 CVS、SVN 等,都有一个单一的集中管理的服务器,保存所有文件的修订版本,而协同工作的人们都通过客户端连到这台服务器,取出最新的文件或者提交更新。多年以来,这已成为版本控制系统的标准做法。
  • 这种做法带来了许多好处,每个人都可以在一定程度上看到项目中的其他人正在做些什么。而管理员也可以轻松掌控每个开发者的权限,并且管理一个集中化的版本控制系统,要远比在各个客户端上维护本地数据库来得轻松容易。
  • 事分两面,有好有坏。这么做显而易见的缺点是中央服务器的单点故障。如果服务器宕机一小时,那么在这一小时内,谁都无法提交更新,也就无法协同工作。
    image

2)分布式版本控制工具

  • 像 Git 这种分布式版本控制工具,客户端提取的不是最新版本的文件快照,而是把代码仓库完整地镜像下来(本地库)。这样任何一处协同工作用的文件发生故障,事后都可以用其他客户端的本地仓库进行恢复。因为每个客户端的每一次文件提取操作,实际上都是一次对整个文件仓库的完整备份。
分布式的版本控制系统出现之后,解决了集中式版本控制系统的缺陷:
  • (1).服务器断网的情况下也可以进行开发(因为版本控制是在本地进行的)
  • (2).每个客户端保存的也都是整个完整的项目(包含历史记录,更加安全)
    image

3.工作机制

Git的分区包括工作区、暂存区、本地仓库(本地版本库)、远程仓库(远程版本库)。

  • 1.工作区: 所谓工作区就是写代码的地方但并非开发工具(开发平台)代码存放的磁盘的目录的位置
  • 2.暂存区: 工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库。工作区写好的代码需要让git追踪到,因此你需要将工作区的代码添加(git add)到暂存区,暂存区的代码是临时存储(没有生成历史版本),即暂存区和工作区的代码均可以被删除
  • 3.本地库: 将暂存区的代码提交(git commit)到本地库就会生成对应的历史版本,即不可能删除掉了,除非你将整个本地库删除
  • 4.远程库: 将本地库的代码推送(push)到远程库(github),可用于远程恢复代码,当我们的电脑磁盘损坏亦或者新版本代码错误过多时可以通过远程库进行版本的回退以及代码的回滚
    • 远程库又称代码托管中心,是基于网络服务器的远程代码仓库
      • GitLab(基于局域网的代码托管中心)
      • GitHub(外网)
      • Gitee 码云(国内网站,相当于国内的github)
        image

具体实现流程

  • 假如要实现上传代码功能,工作区使用add添加文件到暂存区,暂存区再通过commit提交版本给本地仓库,最后本地仓库使用push将版本推送到远程仓库;
  • 工作区修改的文件可以通过checkout命令从本地仓库或暂存区恢复;如果要将工作区某分支的代码更新为远程仓库最新版本,可以使用pull命令;
  • 对远程仓库使用clone可以将远程仓库主分支拷贝到本地仓库,fetch命令与pull类似,只是pull会合并本地代码,而fetch只会把最新版本抓取到本地版本库,不考虑本地仓库是否有新增。

这类git博客主要引用了作者为”尚硅谷“的文章,是博主在学习尚硅谷的git教程做的一些笔记
这篇博客另外引用了作者为”luffylv“和”长期闲置“的文章
原文链接为:BiliBiliCSDNPHP中文网