系列文章目录
第三章 开发工具的认识与使用
文章目录
- 系列文章目录
- 前言
- 一、版本控制
-
- [1.1 版本控制与版本控制器](#1.1 版本控制与版本控制器)
- [1.2 理解版本控制器](#1.2 理解版本控制器)
- 二、Git的认识与搭建
-
- [1.1 Git是什么](#1.1 Git是什么)
- [2.1 环境搭建](#2.1 环境搭建)
-
- [2.1.1 前提配置](#2.1.1 前提配置)
-
- [2.1.1.1 gitee 注册](#2.1.1.1 gitee 注册)
- [2.1.1.2 新建仓库](#2.1.1.2 新建仓库)
- [2.1.1.3 连接仓库](#2.1.1.3 连接仓库)
- [2.1.2 git 安装 与 配置](#2.1.2 git 安装 与 配置)
- [三、Git 原理与使用](#三、Git 原理与使用)
-
- [3.1 Git 操作对象](#3.1 Git 操作对象)
- [3.2 Git 的深度理解](#3.2 Git 的深度理解)
-
- [3.2.1 Git 真正仓库:.git](#3.2.1 Git 真正仓库:.git)
- [3.2.2 Git 更新规则](#3.2.2 Git 更新规则)
- [3.2.3 Git 管理文件的本质 及 过滤文件](#3.2.3 Git 管理文件的本质 及 过滤文件)
- [3.2.4 git 冲突](#3.2.4 git 冲突)
- 四、远程仓库与协作
-
- [4.1 远程仓库形式](#4.1 远程仓库形式)
-
- [4.1 SVN vs Git](#4.1 SVN vs Git)
- [4.2 协作](#4.2 协作)
-
- [4.2.1 SVN 协作模式](#4.2.1 SVN 协作模式)
- [4.2.2 Git 协作模式](#4.2.2 Git 协作模式)
- [4.2.3 两种远程连接方式](#4.2.3 两种远程连接方式)
- 总结
前言
本节我们来学习git的使用,git作为一款我们在学习C过程中常常使用的工具我们以及再熟悉不过,今天我们就学习在Linux中的git的使用吧。
一、版本控制
1.1 版本控制与版本控制器
版本控制就是给文件 / 代码做 "时光机 + 存档",记录每一次修改,随时回溯、对比、多人一起改不冲突。而版本控制器就是帮助我们实现版本控制的工具
1.2 理解版本控制器
我们用例子来理解这个东西:
张三作为一名学生,在完成它的计算机实验报告并提交后,老师检查打回让重新检查,张三修改后再次提交,老师收到后发现错误更多了,就让张三提交第一次的作业,但是第二次作业是张三第一次作业修改而来,找不回第一次的作业了。
李四也是该班的一员,但他在完成第一次作业时备份即创建了个副本,也遇到了张三的问题,但他就能成功地提交第一次的作业。
在以上的例子中,李四的工作就是版本控制的体现, 而且现实中: 张三、李四就是程序员,老师是产品经理。版本控制的存在满足了产品版本多次更迭的要求。
二、Git的认识与搭建
1.1 Git是什么
Git是一款版本控制器,能够记录并管理文件的版本历史,一般常用于团队开发,实现共同的文件共享和查改。
Git 是一款免费、开源的分布式版本控制系统,旨在高速、高效地处理从小型到超大型规模的各类项目。
Git作为版本控制器,还具有以下的特点:
- 分布式: 每个人本地都有完整仓库,不用依赖中央服务器,可离线提交、回滚、分支操作。
- 速度快、高效: 提交、分支、合并、切换版本极快,大项目也不卡顿。
- 免费开源、跨平台: 支持 Windows / Mac / Linux,完全免费,协议开源。
- 强大的分支管理: 可轻松创建、切换、合并分支,适合并行开发、多版本迭代。
2.1 环境搭建
2.1.1 前提配置
2.1.1.1 gitee 注册
gitee网站是基于Git的代码托管平台,因此我们想使用Git必须通过该账号使用(当然也可以使用GitHub),gitee作为中国的网站,我们可以直接通过手机号注册,这里不再多说。
2.1.1.2 新建仓库
打开我的,找到仓库,然后使用新建仓库的选项:

接着就进入到配置界面,实现对仓库的初步设置:

- 仓库名称/仓库介绍: 两者见名知意,不做解释
- 开源/私有: 开源别人就可以通过查找看到你的仓库,后者不能
- 初始化仓库: 对仓库的使用实现语言配置
- 设置模板: 就是对仓库项目的描述设置
- 选择分支模型: 个人使用单分支,是项目的关系。
打开仓库后,获取我们仓库的地址。

2.1.1.3 连接仓库
直接使用在命令行上使用命令:git clone 仓库地址,将远端仓库拉取到本地

2.1.2 git 安装 与 配置
我们直接在命令上输入安装指令即可:
bash
# 以centos版本操作示例
yum install git
# 测试是否安装成功
git --version
配置用户名、邮箱(提交时显示是谁改的),这是首次使用必须配置的。
bash
git config --global user.name "你的名字"
git config --global user.email "你的邮箱"
--global: 全局配置,所有 Git 项目共用;不加只对当前项目生效
git config --list:配置的查看
三、Git 原理与使用
3.1 Git 操作对象
Git一般操作以下四个区域,以实现文件的版本管理:
- 工作区: 你当前写代码的文件夹(Linux 目录)
- 暂存区 (stage): 临时存放准备提交的文件
- 本地仓库:
.git隐藏文件夹,存所有版本历史 - 远程仓库: Gitee/GitHub 上的仓库
实现一次完整的文件提交流程为:工作区 → git add → 暂存区 → git commit → 本地仓库 → git push → 远程仓库
- 工作区 → 暂存区(git add)
在 Linux 里修改 / 新建文件后,文件在工作区,通过以下操作将文件转移到暂存区:
bash
git add 文件名
# 或
git add .
通过
git status查看add后的文件状态
- 暂存区 → 本地仓库(git commit)
bash
git commit -m "提交说明"
把暂存区所有内容,生成一个版本快照,存入 .git 本地仓库。此时已经保存版本,就算删了工作区文件也能恢复。
- 本地仓库 → 远程仓库(git push)
bash
git push origin master
把本地仓库最新版本,推送到 Gitee/GitHub 远程仓库,此时会让用户输入gitee的账户名和对应的密码。
现在高版本,不能直接使用密码登录;现在必须使用安全密令充当密码,从安全设置的私人令牌中获取
3.2 Git 的深度理解
3.2.1 Git 真正仓库:.git
将远端仓库拉到本地后,我们可以看到形成的目录中的所有文件,其中.git仓库是真正的仓库,是本库的核心

- 内容:
.git存储的是历史上对仓库的所有修改记录和版本历史 - 特点: 默认隐藏,不能被用户随意修改访问
3.2.2 Git 更新规则
git提交时,只会提交变化的操作,本质是只记录变化部分,但存储方式是完整快照 + 增量差异。
- 规则: 提交的是文件中里修改 / 新增 / 删除的那部分内容,记录在.git当中
如:我们有1000行的代码文件,我们修改了第五行的代码
那么提交的就是
修改 + 内容,当我们想要回归时就把修改对应的操作反向操作
- 特点: 减少文件的重复,实现空间资源的节约
3.2.3 Git 管理文件的本质 及 过滤文件
Git 在管理项目文件时,其核心操作对象是源代码文件 (如 .c、.h 文件)以及项目描述文件 (如 Makefile、.gitignore)。对于编译生成的中间文件(如 .o 目标文件、可执行文件)或系统自动生成的配置文件,通常不应纳入版本控制。
Git 管理的基本原则:
- 跟踪源文件,忽略生成文件:只将需要人工编写和维护的源文件加入版本库,编译产物由构建系统实时生成。
- 使用
.gitignore文件 :在项目根目录创建.gitignore文件,列出需要 Git 忽略的文件和目录模式,避免误提交。 - 提交有意义的变更:每次提交应对应一个完整的逻辑修改,并附上清晰的提交说明。
示例 .gitignore 内容(C 语言项目常见):
# 编译生成的文件
*.o
*.out
*.exe
*.so
*.a
# 编辑器临时文件
*~
*.swp
*.swo
# 构建目录
build/
dist/
通过遵循这些原则,Git 仓库将保持清晰、精简,只包含真正需要版本控制的必要文件,从而提高协作效率和仓库的可维护性。
3.2.4 git 冲突
当一个仓库中有多人协作时,只要有个人提交文件到远端仓库,我们就必须先同步远端仓库,这样保障了工程的唯一性。

可以说,远端仓库永远是最新的版本,冲突是提醒仓库同步的关键。
四、远程仓库与协作
4.1 远程仓库形式
4.1 SVN vs Git
SVN 与 Git是常用的两个远程仓库,但是两者有着根本性的差异:是否为中心化。首先我们要理解什么是中心化?中心化通俗来说是只能依靠某一特定的对象充当服务的核心,服务的实现不能离开这个中心。
-
SVN(中心化): 采用集中式版本控制架构,存在唯一的中央服务器存储项目全部代码与版本历史;开发者本地仅持有当前工作文件,所有提交、更新、版本查询等操作必须联网与服务器交互,依赖单一中心节点,断网无法完成版本操作。
-
Git(去中心化): 采用分布式版本控制架构,无唯一中心服务器;每个开发者本地都拥有完整的项目仓库副本(包含全部代码、历史版本、分支),可离线完成提交、分支、回滚等操作,远程仓库仅作为协作同步节点,各节点地位对等,实现去中心化协作。
4.2 协作
协作即多人共同维护、开发同一个项目,通过版本控制工具同步代码、合并修改、解决冲突,保障开发流程有序推进。项目开发时,开发者先将远程仓库代码克隆到本地,在本地完成编写、测试、版本提交,联网后将本地代码推送至远程仓库;多人之间通过拉取最新代码、合并分支完成代码同步。
4.2.1 SVN 协作模式
以中央服务器为唯一核心,开发者直接向服务器提交代码;所有修改集中在服务器合并,冲突在线上处理;分支功能薄弱,适合小规模团队线性开发;提交即直接修改中心仓库,风险较高。
4.2.2 Git 协作模式
采用本地开发→远程同步的模式,先在本地完成提交、分支开发,再推送至远程;支持多分支并行开发,冲突优先在本地解决;可通过 Pull Request(PR)实现代码评审,适配大型团队、开源项目的多人协作;远程仓库不直接修改主分支,安全性更高。
4.2.3 两种远程连接方式
HTTPS:简单,每次推送需输入账号密码 / 令牌
SSH:免密登录,Linux/Gitee 推荐使用
总结
本节对git讲解就到这里了,这只是对git的初步使用的讲解,如果有需求的可以继续查询这方面的有关知识,感谢您的阅读,我们下节再见。