java常见面试考点

往期文章推荐:
  java常见面试考点(六):深入理解String类型
  java常见面试考点(七):递归与迭代
  java常见面试考点(八):成员变量与局部变量
  java常见面试考点(九):SSM面试题
  java常见面试考点(十):Linux常用服务类命令


【版权申明】未经博主同意,谢绝转载!(请尊重原创,博主保留追究权);

本博客的内容来自于:java常见面试考点(十一):git与svn区别;

学习、合作与交流联系q384660495;

本博客的内容仅供学习与参考,并非营利;

文章目录

  • java常见面试考点
  • 一、版本控制器的作用
  • 二、git与svn区别
  • 三、git分支操作
  • 参考资料

一、版本控制器的作用

  1. 可以协同代码管理,让多人开发代码得以实现。

  2. 回归到以前的任何一个时间点的代码处,以往各个版本进行保存、管理。

  3. 可以查看每个人具体的操作,便于出现问题后及时排查。

常用的版本控制器有git和svn

二、git与svn区别

git和svn的区别:

1.git是分布式的,而svn是集中式的;(最核心)

git 更倾向于被使用于分布式模式,也就是每个开发人员从中心版本库/服务器上chect out代码后会在自己的机器上克隆一个跟中心版本库一模一样的本地版本库。可以这样说,如果你被困在一个不能连接网络的地方时,你仍然能够提交文件,查看log(历史版本记录),创建项目分支等。

2.git把内容按元数据方式存储,而svn是按文件;

因为.git目录是处于个人机器上的一个克隆版的版本库,它拥有中心版本库上所有的东西,例如标签,分支,版本记录等。​git是每个历史版本都存储完整的文件,便于恢复,svn是存储差异文件,历史版本不可恢复。(核心)

3.git分支和svn的分支不同;

svn会发生分支遗漏的情况,而git可以同一个工作目录下快速的在几个分支间切换,很容易发现未被合并的分支,简单而快捷的合并这些文件。

4.git没有一个全局的版本号,而svn有;

SVN的版本号实际是任何一个相应时间的源代码快照。我认为它是从CVS进化到SVN的最大的一个突破。

5.git的内容完整性要优于svn;

git的内容存储使用的是SHA-1哈希算法。这能确保代码内容的完整性,确保在遇到磁盘故障和网络问题时降低对版本库的破坏。

svn的优点:

  1. 采用集中式,易于管理,保证安全性;

  2. 管理方便,逻辑明确,理念符合常规思维;

  3. 代码的一致性高;

  4. 适合人数不多的项目开发;

  5. 允许一个文件有任意多的可命名属性,会关注所有的文件类型;

  6. 支持二进制文件,更容易处理大文件;

  7. 支持空目录。

svn的缺点:

  1. 服务器压力太大,数据库容量暴增;

  2. 必须连接在服务器上(时刻都得联网操作),否则基本不能工作、提交、对比、还原等;

  3. 不适合开源开发。

git的优点:

  1. 适合分布式开发,强调个体;

  2. 公共的服务器压力和数量都不会太大;

  3. 速度快, 成熟的架构,开发灵活;

  4. 任意两个开发者之间可以很容易的解决冲突;

  5. 离线工作,管理代码成本低,不需要依赖服务器;

  6. 部署方便。基本上下个命令就可以用;

  7. 良好的分支机制,可以让主干代码保持干净。

git的缺点:

  1. 资料少,学习成本比较大,学习周期比较长,要求人员素质比较高;

  2. 不符合常规思维;

  3. 代码保密性差,一旦开发者把整个库克隆下来就可以完全公开所有代码和版本信息。

其中最重要的区别是在于Git 上的分支远比SVN上的强大。下面具体介绍分支的概念。

三、git分支操作

分支是什么:

  在 svn 这类的版本控制系统上,分支(branch)是一个完整的目录,且这个目录拥有完整的实际文件。如果工作成员想要开启新的分支,那将会影响“全世界”!每个人都会拥有和你一样的分支。如果你的分支是用来对系统模块进行安全检查测试的,那将会像传染病一样,你改一个分支,还得让其他人重新切分支重新下载,而且这些代码很可能对稳定版本还是具有破坏性的。
  在 git上,每个工作成员可以任意在自己的本地版本库开启无限个分支。举例:当我想尝试破坏自己的程序(安检测试),并且想保留这些被修改的文件供日后使用, 我可以开一个分支,做我喜欢的事。完全不需担心妨碍其他工作成员。只要我不合并及提交到主要版本库,没有一个工作成员会被影响。等到我不需要这个分支时, 我只要把它从我的本地版本库删除即可,无痛无痒。

查看本地分支:git branch
查看远程分支:git branch -r
创建本地分支:git branch [name] ----注意新分支创建后不会自动切换为当前分支
切换分支: git checkout [name]
创建新分支并立即切换到新分支: git checkout -b [name]
删除分支:git branch -d [name] ---- -d选项只能删除已经参与了合并的分支,对于未有合并的分支是无法删除的。如果想强制删除一个分支,可以使用-D选项
合并分支: git merge [name] ----将名称为[name]的分支与当前分支合并

git 查看远程分支、本地分支、创建分支、把分支推到远程repository、删除本地分支

参考资料

第一节:详细透彻解读Git与SVN的区别(集中式VS分布式)

Git 和 Svn 区别

java常见面试考点(十一):git与svn区别相关推荐

  1. java常见面试考点(二十五):CAS是什么

    java常见面试考点 往期文章推荐:   java常见面试考点(二十):Elasticsearch 和 solr 的区别   java常见面试考点(二十一):单点登录   java常见面试考点(二十二 ...

  2. 视频教程:Java常见面试题目深度解析!

    视频教程:Java常见面试题目深度解析! Java作为目前比较火的计算机语言之一,连续几年蝉联最受程序员欢迎的计算机语言榜首,因此每年新入职Java程序员也数不胜数.很多java程序员在学成之后,会面 ...

  3. Java常见面试知识点:继承、接口、多态、代码块

    问题:Java常见面试知识点:继承.接口.多态.代码块 答案: 1.继承 继承中构造方法的访问特点 子类中所有的构造方法默认都会访问父类中无参的构造方法 为什么? • 子类在初始化的时候,有可能会使用 ...

  4. Git的学习与使用(一)——Git 与 SVN 区别

    Git是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目. Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件. Git ...

  5. Interview:算法岗位面试—上海某公司算法岗位技术(偏机器学习,证券基金行业)面试考点之进程与线程区别、GD改进的算法、ROC和AUC

    Interview:算法岗位面试-上海某公司算法岗位技术(偏机器学习,证券基金行业)面试考点之进程与线程区别.GD改进的算法.ROC和AUC 导读:其实,考察的知识点,博主都做过,但是,emmm,这些 ...

  6. Git 与 SVN 区别

    Git 与 SVN 区别 Git 不仅仅是个版本控制系统,它也是个内容管理系统(CMS),工作管理系统等. 如果你是一个具有使用 SVN 背景的人,你需要做一定的思想转换,来适应 Git 提供的一些概 ...

  7. 简述Git 与 SVN 区别

    Git 与 SVN 区别 Git 不仅仅是个版本控制系统,它也是个内容管理系统(CMS),工作管理系统等. 如果你是一个具有使用 SVN 背景的人,你需要做一定的思想转换,来适应 Git 提供的一些概 ...

  8. 五、Git 与 SVN 区别

    五.Git 与 SVN 区别 Git 与 SVN 区别点: · 1.Git 是分布式的,SVN 不是:这是 Git 和其它非分布式的版本控制系统,例如 SVN,CVS 等,最核心的区别. · 2.Gi ...

  9. git简介,git和SVN区别

    1.git简介 ,git与SVN区别                  Git是目前世界上最先进的分布式版本控制系统(没有之一). 那什么是版本控制系统?                       ...

最新文章

  1. 如何编写最佳的Dockerfile
  2. JDK6u25里添加的按线程统计分配内存量: JMX
  3. 程序员修神之路--它可能是分布式系统中最重要的枢纽
  4. 新盲盒星球抽奖商城手机网站源码 随机开箱抢购
  5. vsftp 虚拟用户测试
  6. 苹果隐私部门负责人:在iPhone上侧载应用会减少用户选择
  7. OpenCV-Python实战(13)——OpenCV与机器学习的碰撞
  8. Vb股票实时交易数据采集源码
  9. matlab拟合函数参数,matlab怎么拟合函数参数?
  10. 为什么互联网公司崇尚扁平化管理?
  11. TSO、UFO、GSO、LRO、GRO和RSS介绍
  12. 毕业旅行之天府之国——徒步峨眉
  13. 示波器的带宽和采样率
  14. 《沧海一声笑》简谱图修正版
  15. Android Studio+Emulator启动黑屏解决方法
  16. Quartus II 11.0破解要点(与低版本的不同)
  17. python openpyxl 获取表头
  18. 一个Qt调用百度翻译API进行文本翻译的程序记录,辅助ts文件进行翻译。
  19. 安徽大学计算机保研学校,她手握6所名校offer,19岁从安徽大学保研到北大,网友却说她亏了...
  20. 2006国际GUI冠军赛最佳易用性视觉风格金奖获得者许士彦(Ricky Xu)专访

热门文章

  1. 工作中一些软件下载资源:PS等
  2. linux 中文小方块,debian系统中文显示方块数字字母及黑块问号的解决办法
  3. meta标签的作用及整理
  4. Kong社区版集成Keycloak实现微服务认证与鉴权
  5. OpenGL开发3D图形绘制——球体
  6. VUE+bpmn.js+iview 页面绘制流程图
  7. 萤石开放平台——怎么通过API接口远程添加摄像头?
  8. 信息与通信的数学基础——第十章 数学物理方程
  9. Java Swing 飞机大战游戏
  10. php窗帘excel,H5+CSS3逼真的窗帘拉开收起动画特效