本文面向 Git 零基础新手,基于 Linux 环境 + Gitee 码云平台,从核心原理、环境搭建,到核心命令、团队协作、冲突解决全流程拆解,手把手带你掌握 Git 版本控制工具,所有操作均附实战示例与效果展示,可直接跟着操作落地。
一、Git 的核心作用
Git 是目前业界最主流的分布式版本控制系统,核心用于工程项目的代码与文件管理,无论是单人开发还是多人团队协作,都能完美适配,核心价值体现在以下 3 个方面:
- 多人协同开发支持多开发者同时对同一个项目进行修改、迭代,最终可以无缝合并各自的修改内容,解决了传统文件拷贝、邮件传代码的协作混乱问题。
- 版本回溯与管理会将项目研发的每一个迭代版本独立保存,每一个版本都有唯一的标识,你可以随时回退到任意历史版本,再也不怕改崩代码无法恢复。
- 多端安全存储 Git 将项目文件完整存储在三个核心位置,实现多重备份,彻底避免代码丢失风险:
- 工作区:你本地编写、修改项目代码的文件夹
- 本地仓库:当前电脑上完整的版本库,所有历史版本都存在这里,断网也能正常提交版本
- 远程仓库:云端的 Git 仓库(如 Gitee、GitHub),实现多端同步、团队共享
二、Git 核心原理解析
2.1 Git 四大核心工作区域
Git 的所有操作,都是围绕四大工作区域的文件流转完成的,四个区域的定义与职责如下:
| 区域名称 | 英文标识 | 核心作用 |
|---|---|---|
| 工作区 | Workspace | 本地电脑上编写、修改项目文件的目录,就是你日常开发操作的文件夹 |
| 暂存区 | Index/Stage | 临时保存代码修改的区域,相当于提交前的 "草稿箱",可以分批、分类管理本次要提交的修改 |
| 本地仓库 | Repository | 存储在你当前电脑上的完整版本库,所有提交的历史版本、分支信息都永久保存在这里,断网也可正常使用 |
| 远程仓库 | Remote | 部署在云端的 Git 仓库(Gitee/GitHub 等),用于团队共享代码、多设备同步,是多人协作的核心枢纽 |
【图 1 Git 四大工作区域与核心指令流转示意图】

2.2 分布式版本控制的核心逻辑
和传统的集中式版本控制工具(如 SVN)不同,Git 是分布式架构,这也是它的核心优势:
- 无中央服务器依赖:每个开发者的电脑上都有一个完整的版本库,日常开发、提交版本完全不需要联网,所有操作都在本地完成,只有和团队同步修改时才需要联网。
- 协作逻辑简单:多人协作时,开发者 A 修改了文件,开发者 B 也修改了同一个文件,双方只需把各自的修改推送到远程仓库,再拉取对方的修改,就能互相看到并合并更新,无需依赖中央服务器统一管控。
- 数据安全性极高:每个本地仓库都是完整的备份,即使云端远程仓库损坏,任意一个开发者的本地仓库都能恢复完整的项目与所有历史版本。
核心注意事项:多人协作时,每次提交推送前,必须先拉取远程仓库的最新内容,否则会出现推送失败,甚至引发代码冲突,这个规范会在后续协作流程中详细讲解。
三、Git 环境全流程搭建
3.1 远程仓库创建(Gitee/GitHub)
远程仓库是团队协作的云端枢纽,国内推荐使用 Gitee(码云),访问速度更快,GitHub 同理可参考操作。
3.1.1 账号注册与官网访问
Gitee 官方地址:https://gitee.com/没有账号的用户,先完成账号注册与实名认证,注册完成后登录账号,进入 Gitee 首页。
【图 2 Gitee 官网首页与登录后界面】

3.1.2 新建远程仓库
- 点击首页的「创建我的仓库」按钮,进入新建仓库配置页面;
- 填写仓库核心配置信息:
- 仓库名称:自定义,建议使用英文、数字、下划线组合,不要用中文和特殊符号
- 归属:选择个人账号,路径会根据仓库名称自动生成
- 仓库介绍:简要描述仓库用途,可选填
- 权限:开源(所有人可见)/ 私有(仅仓库成员可见),个人练习建议选私有
- 初始化仓库:新手建议勾选,会自动生成 README、.gitignore 等基础文件
- 配置完成后,点击「创建」按钮,即可完成远程仓库的创建。
【图 3 Gitee 新建仓库配置页面】

【图 4 仓库创建完成后的远程仓库首页】

3.2 Git 工具安装
Git 支持 Windows、Mac、Linux 全平台,这里重点讲解 Linux 环境安装,同时补充其他平台安装方式。
3.2.1 Linux 环境安装
Debian/Ubuntu 系列系统(如 Ubuntu、Deepin),直接在终端执行以下命令:
sudo apt-get update
sudo apt-get install git
CentOS/RHEL 系列系统,执行以下命令:
sudo yum install git
执行命令后,终端会提示安装所需的依赖包,输入y确认安装,等待安装完成即可。
【图 5 Linux 终端 Git 安装执行过程与完成界面】

3.2.2 其他平台安装
- Windows:前往 Git 官网(https://git-scm.com/)下载对应安装包,默认下一步安装即可,安装完成后通过 Git Bash 终端执行所有 Git 命令。
- Mac:终端执行
brew install git即可完成安装(需提前安装 Homebrew)。
安装完成后,在终端执行git --version,若输出 Git 版本号,说明安装成功。
3.3 Git 全局用户与邮箱配置
安装完成后,第一步必须配置用户名称和邮箱,这是你提交代码的身份标识,每次版本提交都会记录该信息,团队协作中用于区分不同开发者的提交。
3.3.1 执行配置命令
全局配置(对当前电脑所有 Git 仓库生效),终端执行以下两条命令:
# 配置用户名,自定义即可,建议和Gitee账号用户名一致
git config --global user.name "你的用户名"
# 配置邮箱,建议和Gitee注册邮箱一致
git config --global user.email "你的邮箱地址"
补充说明:如果想针对单个仓库单独配置用户名和邮箱,进入对应仓库目录,去掉命令中的
--global参数执行即可,优先级高于全局配置。
3.3.2 查看配置信息
执行以下命令,查看 Git 配置信息,确认用户名和邮箱配置成功:
git config -l
【图 6 Git 用户配置与查看配置信息执行结果界面】

3.4 SSH 公钥生成与远程仓库配置
配置 SSH 公钥的核心作用,是实现本地仓库和 Gitee 远程仓库的免密通信,避免每次推送、拉取代码都要输入账号密码,是 Git 开发的标准配置。
3.4.1 生成 SSH 密钥对
终端执行以下命令,生成 RSA 加密的 SSH 密钥对,邮箱填写上一步配置的 Gitee 注册邮箱:
ssh-keygen -t rsa -C "你的邮箱地址"
执行命令后,终端会出现三次提示,直接连续三次回车即可 ,无需设置密码,密钥对会默认生成在用户目录的~/.ssh/文件夹下。
【图 7 ssh-keygen 生成 RSA 密钥对执行过程界面】

3.4.2 将私钥添加到 ssh-agent
执行以下命令,将生成的私钥添加到 ssh-agent 中,确保本地能正常读取密钥:
ssh-add ~/.ssh/id_rsa
【图 8 ssh-add 添加私钥到 ssh-agent 执行结果界面】

3.4.3 获取公钥内容
执行以下命令,读取公钥文件的完整内容,后续需要粘贴到 Gitee 平台:
cat ~/.ssh/id_rsa.pub
执行后,终端会输出以ssh-rsa开头、以你的邮箱结尾的一长串字符,这就是完整的公钥内容,完整复制全部内容,不要遗漏字符、不要添加多余空格。
【图 9 cat 查看公钥内容执行结果界面】

3.4.4 公钥添加到 Gitee 平台
- 打开 Gitee 官网,登录账号,点击右上角个人头像,进入「设置」页面;
- 在左侧菜单栏中,找到「SSH 公钥」选项,进入公钥配置页面;
- 将上一步复制的公钥内容,粘贴到「公钥」输入框中,标题自定义(比如 "个人开发电脑");
- 点击「确定」,完成公钥添加,可能需要验证 Gitee 账号密码。
【图 10 Gitee 账户设置中 SSH 公钥配置入口页面】

【图 11 Gitee 添加 SSH 公钥配置页面】

3.4.5 验证 SSH 连通性
终端执行以下命令,验证本地和 Gitee 的 SSH 连通性:
ssh -T git@gitee.com
首次执行会提示确认连接,输入yes回车即可,若终端输出Hi 你的用户名! You've successfully authenticated,说明公钥配置成功,本地和 Gitee 已经可以正常通信。
【图 12 SSH 公钥验证连通性执行结果界面】

常见坑排查:若验证失败,检查公钥是否完整复制、是否粘贴了多余空格 / 换行、Gitee 邮箱是否和配置一致、密钥文件权限是否正确。
四、Git 核心命令全解析与实战
完成环境搭建后,我们进入 Git 核心命令实战,所有命令均基于实际开发场景,从本地仓库初始化,到远程仓库推送全流程覆盖。
4.1 本地 Git 环境初始化
首先,创建一个文件夹作为你的项目工作区,进入该文件夹,终端执行以下命令,初始化 Git 环境:
# 进入你的项目文件夹
cd 你的项目文件夹路径
# 初始化Git仓库
git init
执行后,文件夹中会生成一个隐藏的.git目录,这就是你的本地仓库,所有版本历史、配置信息都存储在这里,不要手动修改、删除该目录,否则会丢失所有本地版本记录。
4.2 查看仓库状态 git status
git status是 Git 中最常用的命令,建议每次操作前后都执行一次,可以实时查看当前仓库的状态,包括:
- 当前所在分支
- 工作区中已修改、未暂存的文件
- 暂存区中已暂存、未提交的文件
- 未被 Git 跟踪的新建文件
终端直接执行命令即可:
git status
【图 13 git status 查看空仓库状态执行结果界面】

【图 14 git status 查看包含暂存 / 未跟踪文件的仓库状态界面】

4.3 工作区文件添加到暂存区 git add
git add命令的作用,是把工作区的文件修改 / 新建文件,添加到暂存区,只有添加到暂存区的内容,才能被提交到本地仓库。
常用语法
# 添加单个指定文件到暂存区
git add 文件名
# 添加指定文件夹到暂存区
git add 文件夹名/
# 批量添加当前目录下所有修改、新建的文件到暂存区(最常用)
git add .
# 仅添加已被Git跟踪的文件的修改,不包含新增文件
git add -u
# 添加所有变更(新增、修改、删除),等价于git add . + git add -u
git add -A
【图 15 git add . 批量添加文件到暂存区执行结果界面】

补充:若想取消某个文件的暂存,执行
git rm --cached <文件名>即可,不会删除本地文件,仅从暂存区移除。
4.4 暂存区内容提交到本地仓库 git commit
git commit是 Git 的核心命令,作用是把暂存区的内容,永久提交到本地仓库,生成一个唯一的版本快照,每个提交都会生成一个唯一的commit id,用于后续版本回溯、管理。
基础语法
# 提交暂存区内容到本地仓库,-m 后接本次提交的版本描述,必填
git commit -m "版本描述信息"
# 快捷命令:跳过git add步骤,直接提交所有已跟踪文件的修改(新增文件不生效)
git commit -am "版本描述信息"
最佳实践:版本描述一定要清晰明确,精准说明本次提交的修改内容,比如
fix: 修复了用户登录接口崩溃问题、feat: 新增温湿度数据采集功能,方便后续回溯版本时快速识别修改内容,团队协作中必须遵守该规范。
【图 16 git commit 提交版本到本地仓库执行过程界面】

4.5 版本历史查看 git log
git log命令用于查看本地仓库的所有提交历史,包括每个版本的commit id、提交人、提交时间、版本描述,是版本回溯的前提。
常用语法
# 查看完整的版本历史,包含commit id、作者、时间、描述
git log
# 简洁查看版本历史,一行显示一个版本,仅展示短commit id和版本描述(最常用)
git log --oneline
# 查看版本历史,同时展示每个提交的具体代码修改内容
git log -p
# 图形化展示分支合并与版本历史
git log --graph
【图 17 git log 查看本地仓库版本历史记录界面】

4.6 版本回退 git reset
当你修改代码后发现问题,想要回退到之前的历史版本时,使用git reset命令,核心是通过commit id指定要回退的目标版本。
三种核心模式(重点区分)
| 模式 | 语法 | 作用 | 使用场景 |
|---|---|---|---|
| 硬重置 | git reset --hard commit_id | 本地仓库、暂存区、工作区全部回退到目标版本,当前未提交的修改会全部丢失 | 确定要放弃当前所有修改,完全回退到历史版本 |
| 软重置 | git reset --soft commit_id | 仅回退本地仓库,暂存区、工作区的修改全部保留 | 想要合并多个提交,或重新修改提交内容 |
| 混合重置 | git reset --mixed commit_id | 回退本地仓库和暂存区,工作区修改保留(默认模式) | 想要重新整理暂存的内容,分批提交 |
实战示例
# 完全回退到指定commit id的版本,慎用!
git reset --hard 6e8061f02bfd5123ee0664b15e5a177c23bfa026
【图 18 git reset --hard 版本回退执行过程与结果界面】

救命技巧:若手滑用了
--hard回退错了版本,执行git reflog查看所有操作历史,找到回退前的 commit id,再次执行git reset --hard即可恢复,彻底避免代码丢失。
4.7 本地仓库与远程仓库关联
本地仓库提交版本后,想要推送到云端远程仓库,首先需要将本地仓库和远程仓库建立关联,一个本地仓库仅需执行一次关联命令即可。
核心命令
# 关联远程仓库,origin是远程仓库的默认别名,可自定义,后面接你的远程仓库SSH地址
git remote add origin 你的远程仓库SSH链接
注意:远程仓库链接建议使用 SSH 格式,不要使用 HTTPS 格式,否则无法实现免密推送。
辅助命令
# 查看当前已关联的远程仓库地址
git remote -v
# 删除已关联的远程仓库(origin为别名)
git remote remove origin
【图 19 git remote add 关联远程仓库执行命令界面】

4.8 本地版本推送到远程仓库 git push
git push命令用于将本地仓库的版本提交,推送到已关联的远程仓库,实现云端备份和团队共享。
基础语法
# 将本地master分支的版本,推送到远程origin仓库的master分支
git push origin master
核心规范:推送前必须先拉取远程仓库的最新代码,否则如果远程仓库有本地没有的提交,会直接推送失败,这个是新手最常遇到的问题。
【图 20 git push 推送本地版本到远程仓库执行过程界面】

推送成功后,刷新 Gitee 远程仓库页面,就能看到你提交的代码文件和版本记录。
【图 21 推送成功后 Gitee 远程仓库的文件展示页面】

4.9 远程仓库克隆到本地 git clone
当你想要把一个已有的远程仓库,完整下载到本地电脑时,使用git clone命令,适用于首次拉取项目、切换设备开发的场景。
基础语法
# 克隆远程仓库到本地当前目录
git clone 远程仓库SSH链接
# 克隆远程仓库的指定分支到本地
git clone -b 分支名 远程仓库SSH链接
【图 22 git clone 克隆远程仓库到本地执行过程界面】

补充:通过
git clone克隆的仓库,会自动关联远程仓库,无需再执行git remote add命令,直接就能拉取、推送代码。
五、Git 团队协作标准流程与冲突解决
5.1 多人协作的标准工作流
多人团队开发时,必须遵守统一的工作流程,才能避免代码冲突、版本混乱,标准流程如下:
- 拉取最新代码 :每次开发前,先执行
git pull origin master,拉取远程仓库的最新代码,确保本地代码和云端同步; - 本地开发修改:在本地完成代码编写、功能开发、自测;
- 提交本地版本 :开发完成后,执行
git add .和git commit -m "版本描述",将修改提交到本地仓库; - 再次拉取最新代码 :推送前再次执行
git pull,防止开发过程中其他人提交了新的代码,避免推送失败; - 解决合并冲突:如果拉取时出现冲突,和团队成员协商,完成冲突解决,重新提交修改;
- 推送到远程仓库 :无冲突后,执行
git push origin master,将本地版本推送到远程仓库,完成本次开发迭代。
5.2 合并冲突的产生与解决
5.2.1 冲突产生的原因
冲突的核心产生原因:两个开发者同时修改了同一个文件的同一行代码,或者一个开发者删除了某个文件,另一个开发者修改了该文件,Git 无法自动判断该保留哪一部分修改,就会触发合并冲突,需要人工手动解决。
最常见的场景:开发者 A 修改了 a.c 文件并推送到了远程仓库,开发者 B 在本地也修改了 a.c 文件的同一行,拉取代码时就会触发冲突。
【图 23 git pull 拉取代码时触发合并冲突的提示界面】


5.2.2 冲突的识别
触发冲突后,Git 会在冲突文件中添加冲突标记,格式如下:
<<<<<<< HEAD
这里是你本地的代码修改内容
=======
这里是远程仓库的代码修改内容
>>>>>>> 5eb86182b94d803d214aef25bac06b7b82df2a07
<<<<<<< HEAD到=======之间的内容,是你本地的修改=======到>>>>>>> 版本号之间的内容,是远程仓库的修改
【图 24 冲突文件中的冲突标记内容展示界面】

5.2.3 冲突解决步骤
- 协商确认内容:打开冲突文件,和对应的开发人员沟通,确认最终要保留的代码内容,决定保留本地修改、远程修改,还是两者都保留并整合;
- 删除冲突标记 :修改完成后,删除文件中所有的冲突标记(
<<<<<<<、=======、>>>>>>>),确保代码语法正常; - 重新提交修改 :冲突解决完成后,执行
git add .和git commit -m "fix: 解决代码合并冲突",将修改提交到本地仓库; - 推送到远程仓库 :执行
git push origin master,将解决冲突后的版本推送到远程仓库,冲突解决完成。
【图 25 冲突解决后重新提交并推送的执行过程界面】

冲突规避最佳实践:
- 开发前、推送前必须先拉取最新代码,降低冲突概率;
- 团队内做好分工,避免多人同时修改同一个文件的同一模块;
- 小步快跑,频繁提交、频繁拉取,避免一次性提交大量代码,导致冲突难以解决。
六、Git 新手常见坑与避坑指南
-
提交后发现版本描述写错了,怎么修改? 执行
git commit --amend,可以修改最后一次提交的版本描述,也可以把当前未提交的修改合并到上一次提交中。 -
误删了工作区的文件,怎么恢复? 执行
git checkout -- 文件名,可以从本地仓库中恢复该文件到最后一次提交的状态,前提是该文件已经被 Git 跟踪过。 -
有些文件不想被 Git 提交到仓库,怎么办? 在项目根目录创建
.gitignore文件,在文件中写入要忽略的文件 / 文件夹路径,Git 会自动忽略这些文件,不会跟踪它们的修改。示例:# 忽略所有.o结尾的编译文件 *.o # 忽略临时文件夹 tmp/ # 忽略日志文件 *.log -
push 推送被拒绝,提示
fetch first,怎么解决? 这是最常见的报错,原因是远程仓库有你本地没有的提交,先执行git pull origin master拉取最新代码,解决冲突后,再重新 push 即可。 -
配置了 SSH 公钥,拉取 / 推送还是提示输入密码? 大概率是你的远程仓库关联用了 HTTPS 链接,执行
git remote -v查看,若地址是 https 开头,执行git remote set-url origin 你的SSH仓库链接更换为 SSH 格式即可。
七、总结
本文从 Git 核心原理出发,完整覆盖了环境搭建、核心命令、团队协作、冲突解决全流程,是一套完整的 Git 零基础入门教程,所有操作都可以直接跟着落地。
Git 是嵌入式开发者的必备工具,核心在于多练多用,熟练掌握后,无论是单人开发的版本管理,还是多人团队的协作开发,都能大幅提升效率。后续进阶可以学习 Git 分支管理、Git Flow 工作流、标签 tag 管理等内容,进一步掌握 Git 的高阶用法。