提纲:
👉 八股:
  1. 简单说一下大端、小端。
  2. 什么是git?
  3. 为什么要用git?
  4. 简述集中式版本控制库和分布式版本控制库的区别
  5. 简述Git 与 SVN 区别
  6. 简述diff 与 patch 区别
  7. git常用命令
👉 代码:

一、C++八股内容:

1、简单说一下大端、小端。


换句话说👇:存在字符串: 
高有效位   →    12 34 56 78   →     低有效位  
小端:低地址位   →    78 56 34 12   →     高地址位  
端:低地址位   →    12 34 56 78   →     高地址位  

大端模式:符合阅读习惯,高字节存放在低地址,低字节存放在高地址;类似于把数据当作字符串顺序处理
小端模式:低字节存放在低地址,高字节存放在高地址;高地址部分值高,低地址部分权值低


2、什么是git?

  • Git 是一个开源分布式版本控制系统,用于快速高效地处理任何或小或大的项目。最初是为了帮助管理Linux内核开发的一个开放源码的版本控制软件。
  • Git应用十分广泛,小到我们平时使用github网站,大到公司中多人合作的大型项目开发。
  • 速度快完全分布式,允许成千上万个并行开发的分支,容灾性能强

git分为哪几个区?分别是什么?

①工作区(Workspace)是电脑中实际的目录。
②暂存区(Index)类似于缓存区域,临时保存你的改动。
③仓库区(Repository),分为本地仓库和远程仓库。

通常提交代码分为几步:
①  git add  从工作区提交到暂存区
②  git commit  从暂存区提交到本地仓库
③  git push  或  git svn dcommit  从本地仓库提交到远程仓库

3、为什么要用git?

让你回答为什么用git,其实就是让你说之前的版本控制系统为什么不好
最开始的版本控制方法一般都是采用人工手动控制。

- 缺点:
  • 千人千面,不同版本命名随意
  • 有时无法快速辨别版本新旧
  • 无法快速知道版本1相比版本2自己改了什么
  • 如果要是多人开发,那命名和版本控制更为可怕



4、简述集中式版本控制库和分布式版本控制库的区别

  • 备份
    • 集中式存在单点故障,一旦故障,没法恢复,所以备份极其重要;
    • 分布式则更安全,出现故障可以恢复数据,每一个节点都是一个服务器。
  • 服务器压
    • 集中式所有的操作都要与服务器交互,操作首先于带宽,不能移动办公;
    • 分布式全是离线操作,不受限于带宽,可以移动办公。
  • 安全性
    • 集中式容易出现单点故障,遭受黑客攻击;
    • 分布式数据、提交全部使用SHA1哈希,以保证数据完整性,甚至提交可以使用PGP签名。
  • 作模
    • 集中式合适人数不多的项目,集中管理;
    • 分布式适合很多人的项目。
  •  
集中式和分布式最根本的区别就是:

分布式每个人的电脑上都可以直接拷贝完整的代码版本。而集中式只能拷贝自己需要的。

分布式的服务器挂掉之后,不会影响工作。而集中式的服务器挂掉之后,根本就没法进行工作。


5、简述Git 与 SVN 区别

SVN:
Subversion(SVN) 是一个开源的