【3 编程语言】3.3 代码版本管理

3.3 代码版本管理

【考点讲解】

大家所熟知的 Windows 7 系统的代码量大约有5000万行代码。当初开发 Windows 7的时候足足成立了23个小组,而每个小组成员大约为40人,所以总人数也接近了1000人。要知道这只是微软Windows团队成员的人数,要说为Windows 7做出过贡献的人更是数不胜数。这么庞大的软件工程,假如没有成熟的代码版本管理工具去维护,试想一下,1000个人都需要修改到同一个文件,这将是一件多么恐怖的事情。
所以代码版本管理工具对于研发团队来说,是十分重要的。目前业界常用的代码版本管理的主流工具有:Git、SVN、CVS等。其中SVN和CVS是集中式版本控制工具,版本库集中存放在中央服务器中,需要联网才能工作,但Git是分布式版本控制工具,每个开发者都有一套本地代码仓库,就算网络中断,对于本地仓库的版本维护也是影响不大的。本地仓库和远程仓库又可通过网络进行版本快照同步,使得代码维护更加安全。Git 也是当今最流行、最优秀的分布式版本控制工具,我们在日常工作中将会频繁与Git 打交道。
在面试过程中,有关代码版本控制的问题问得相对较少,但是并不是说这个考点就不重要,因为大厂对于软件研发的流程更加完善,代码版本控制是必不可少的一环,不仅要确保代码本身不出差错,也要保证合并代码的时候不要合出问题。以笔者的亲身经历,面试大厂时,此类问题还是有一定几率会被问到的,大家复习时主要以了解代码版本控制原理为主即可。另外,因为 Git 在代码版本控制软件中最为流行,所以大家也应该要了解Git的常用操作命令。
有关代码版本控制的考点有:
  • Git 的工作原理
  • Git 的基本操作

【例题示例】

3.4.1. Git的工作原理是什么?

【考点映射】
  • Git 的工作原理
【出现频度】★★★☆
【难度】★★

【参考答案】
Git 是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。它是由 Linux 之父 Linus Torvalds 开发的。大名鼎鼎的 GitHub、GitLab 以及 Gitee 等代码托管网站,都是基于Git 进行构建。
Git 作为一个分布式版本控制系统,不仅有一个中心的服务器控制最新版本代码,而且每个开发者自己还有个本地仓库,所以在开发过程中都是先将代码提交到本地仓库再推送到中心服务器上的,这样的好处就是每个人都依赖于中心服务器来实现交互,但又不会被中心服务器限制,就算中心服务器挂了,也能很容易的找到最新版本的代码,而且我自己的工作依然可以顺利进行,提交到本地仓库,当中心服务器修复之后,再将自己仓库的东西推送到中心服务器中。
Git 主要分为四个组成部分:工作区暂存区本地仓库远程仓库
工作区:当我们执行 git init 之后,就会在项目目录下生成一个.git 文件夹,预示着整个项目被git托管,而此时的整个项目目录包括其子目录,都将成为工作区。
暂存区:暂存区用来保存经 git add [file] 命令处理后的文件快照,标志着某个文件状态已经被追踪。
本地仓库:每一次将暂存区的文件快照提交(git commit)到本地仓库的动作,即形成一次统一的版本,由此可进行本地化的版本管理,并且本地仓库的版本信息也可以和远程仓库进行同步。
远程仓库:即 github 之类的代码托管网站,将本地仓库的版本信息同步到远程仓库之后,将会使得代码的维护变得更加安全,假如本地仓库被搞乱了,还可以从远程仓库拉取代码进行项目还原。
当我们在工作目录中进行文件操作后,要先添加到暂存区,然后再将暂存区中刚添加的文件快照提交到本地仓库,然后再将本地仓库的最新版本文件快照推送到远程仓库。
以下是Git的文件存储的流程图:


3.4.2. 介绍一下 Git 的常用命令

【考点映射】
  • Git 的基本操作
【出现频度】★★★☆
【难度】★★

【参考答案】
查看提交记录
git log  查看过往提交记录
git dif

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

测试岗笔面试真题宝典 文章被收录于专栏

测试工作无非就是点点点,没有太深的技术难度?<br/> 开发转投测试岗,原以为自身的条件能轻松胜任测试岗却反被面试官虐?<br/> 测试岗究竟要准备哪些技术知识去应对面试?<br/> 如何才能在测试岗面试中做到游刃有余?<br/> <p> <span>本专刊从测试岗面试考察的知识点和能力出发,精选出经典的测试岗面试题,不仅给出面试的典型回答和考点分析,还会剖析知识点,将其讲清讲透,让你彻底领悟题目背后所考察的能力,帮你梳理复习测试岗的知识体系。</span> </p> <h3> <span><br /> </span><span><strong>专刊主要分为3大模块:</strong></span> </h3> <p> <span>1. 岗位校招情况介绍:</span> </p> <p> <span>将对整个测试岗位进行详细的介绍,包括测试岗位的分类、市场需求量、薪资情况和校招概况,都会逐一做介绍,让同学们能对测试岗位的校招情况有个大概的了解<br /> 2. 面试考点和面试题讲解:</span> </p> <p> <span>这是本章最为核心的部分,将会以面试题讲解的形式,不仅给出面试题参考答案,还会对考点进行分析,剖析其中的知识点,把知识点讲清讲透,帮助同学们梳理复习测试岗的知识体系。本章涉及的知识板块有:软件测试基础知识、测试用例设计、排查问题的思路、常用的测试工具、计算机操作系统、计算机网络、编程语言和常考的智力题。内容丰富,基本上涵盖了测试面试常考的知识点。<br /> 3. 求职经验分享:</span> </p> <p> <span>本章将详细讲解面试的注意事项:从面试前的准备、面试当天到面试结束收到offer整个过程,都会进行逐一讲解。</span> </p> <p> <span><br /> </span> </p> <h3> <span>专刊大纲:</span> </h3> <p> <span><img src="https://uploadfiles.nowcoder.com/images/20210625/691666214_1624592824918/B4749CDE6B040FF304C11BA36D1276D5" alt="" width="700" height="1692" title="" align="" /><br /> <br /> </span> </p> <h3> <span>购买须知:</span> </h3> <span>①订阅成功后,用户即可通过牛客网 PC 端、App 端享有永久阅读的权限;<br /> ②牛客专刊为虚拟内容服务,订阅成功后概不退款;<br /> ③在专刊阅读过程中,如有任何问题,可在文章评论区底部留言,或添加牛客求职导师,加入读者交流群;<br /> ④想成为牛客作者,请邮件联系pandengfeng@nowcoder.com,邮件主题【牛客作者+写作方向】,并附上个人简历一份及近期作品一份;<br /> ⑤牛客专刊版权归本平台所有,任何机构、媒体、网站或个人未经本网协议授权不得转载、链接、转贴或以其他方式复制发布 / 发表,违者将依法追究责任。<br /> </span> <p> <span>了解专刊更多详细信息,请扫码添加丸子老师微信~</span> </p> <p> <br /> </p> <p> <img src="https://uploadfiles.nowcoder.com/images/20210526/999991364_1622023901811/2E767EB5BD55BF57B67C8E5427B978D8" alt="" /> </p>

全部评论

相关推荐

头像
11-27 14:28
长沙理工大学
刷算法真的是提升代码能力最快的方法吗?&nbsp;刷算法真的是提升代码能力最快的方法吗?
牛牛不会牛泪:看你想提升什么,代码能力太宽泛了,是想提升算法能力还是工程能力? 工程能力做项目找实习,算法也分数据结构算法题和深度学习之类算法
点赞 评论 收藏
分享
寿命齿轮:实习就一段还拉了,项目一看就不是手搓,学历也拉了,技术栈看着倒是挺好,就是不知道面试表现能咋样。 不过现在才大三,争取搞两端大厂实习,或者一个纯个人项目+一段大厂,感觉秋招还是未来可期。
投递美团等公司10个岗位
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务