大模型技术之Git操作(第一章)
第1章版本控制与版本控制工具
1.1何为版本控制
- 粒度太大
- 可控性太差(说明文档、权限控制等)
1.2为什么需要版本控制软件
- 作用1:保存和管理文件

- 作用2:提供客户端工具进行访问

- 作用3:提供不同版本文件的比对功能

- 作用4:支持多人协作开发
个人开发过渡到团队协作开发
1.3 版本控制的应用场景
场景1:你的代码正常工作你改了其中的几行代码程序出了问题你把代码改回来程序还是不能正常工作 --为什么?
场景2:你的程序昨天还能正常运行昨天晚上你修改了很多内容,做了很大的改进但是目前程序还不能正常运行客户今天要看你程序演示的demo --怎么办?
场景3:第一天客户要求你写一个进度条对话框来显示进度;第二天客户觉得对话框不好看,用进度条显示进度;第三天客户又觉得还是对话框好看,重新用对话框--如何应对?
场景4:有人在代码里面做了手脚,找出来这个人程序员不承认这是自己写的代码--怎么查?
场景5: 代码拥有者权限。 开发人员可以修改、 测试人员只能读取--如何区别?
场景6: 项目源码版本的备份和记录
场景7:你改了代码的一部分,程序可以正常工作。你同事改了代码的一部分,程序也可以正常工作。你把你们的改动合并在一起,程序不正常工作了,到底是代码哪些地方发生了变化?什么变化让代码不能正常工作了?我如何跟同事一起协同开发项目?
场景8: 项目管理,工作量统计
1.4 版本控制工具
1.4.1 集中式版本控制工具
CVS、SVN(Subversion)、VSS(微软)……
集中化的版本控制系统诸如CVS、SVN 等,都有一个单一的集中管理的服务器,保存所有文件的修订版本,而协同工作的人们都通过客户端连到这台服务器,取出最新的文件或者提交更新。多年以来,这已成为版本控制系统的标准做法。
这种做法带来了许多好处,每个人都可以在一定程度上看到项目中的其他人正在做些什么。而管理员也可以轻松掌控每个开发者的权限,并且管理一个集中化的版本控制系统,要远比在各个客户端上维护本地数据库来得轻松容易。
缺点:
➢ 在离线状态下开发者无法进行版本管理开发
➢ 每个开发者只有应用代码库的一个版本
➢ 中央服务器的单点故障。如果服务器宕机一小时,那么这一小时内,谁都无法提交更新,也就无法协同工作。
SVN 的操作原理图

把别人提交的代码,同步到自己的电脑上,这叫update。注意:只有第一次下载才叫 check out。
1.4.2 分布式版本控制工具
Git、Mercurial、Bazaar、Darcs
分布式的版本控制系统出现之后,解决了集中式版本控制系统的缺陷:
➢ 服务器断网的情况下也可以进行开发,等到有网时再push 到仓库中(因为版本控制是在本地进行的)

- 每个客户端保存的是整个代码库的所有版本(包含历史记录,更加安全)
- 像Git 这种分布式版本控制工具,客户端提取的不是最新版本的文件快照,而是把代码仓库完整地镜像下载到本地(本地库),也就是每个开发者都有整个代码库的所有版本。这样任何一处协同工作用的文件发生故障,事后都可以用其他客户端的本地仓库进行恢复。
- 服务器可以是集群的,主从复制,一个宕机以后,客户端还可以连其他服务器
1.5 代码托管中心(远程仓库)
代码托管中心是基于网络服务器的远程代码仓库,一般我们简单称为远程库。
1.5.1 互联网
➢ GitHub(地址:https://github.com/)
是一个面向开源及私有软件项目的托管平台,因为只支持Git 作为唯一的版本库格式进行托管,故名gitHub。国外网站,有非常多优秀的开源项目托管代码,但是从国内访问很慢。
➢ Gitee / 码云(地址: https://gitee.com/)
是国内的一个代码托管平台,由于服务器在国内,所以相比于GitHub,码云速度会更快。
1.5.2 局域网
➢ GitLab(地址: https://about.gitlab.com/)
是一个用于仓库管理系统的开源项目,使用Git 作为代码管理工具,并在此基础上搭建起来的web 服务。与GitHub 的使用类似,有特殊需求不能使用外网的代码托管中心,可以在局域网内搭建自己的代码托管中心服务器。
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐


所有评论(0)