零基础Git入门:Linux+Gitee实战指南
本文面向 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 gitCentOS/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 gitgitee.com首次执行会提示确认连接输入yes回车即可若终端输出Hi 你的用户名! Youve successfully authenticated说明公钥配置成功本地和 Gitee 已经可以正常通信。【图 12 SSH 公钥验证连通性执行结果界面】常见坑排查若验证失败检查公钥是否完整复制、是否粘贴了多余空格 / 换行、Gitee 邮箱是否和配置一致、密钥文件权限是否正确。四、Git 核心命令全解析与实战完成环境搭建后我们进入 Git 核心命令实战所有命令均基于实际开发场景从本地仓库初始化到远程仓库推送全流程覆盖。4.1 本地 Git 环境初始化首先创建一个文件夹作为你的项目工作区进入该文件夹终端执行以下命令初始化 Git 环境# 进入你的项目文件夹 cd 你的项目文件夹路径 # 初始化Git仓库 git init执行后文件夹中会生成一个隐藏的.git目录这就是你的本地仓库所有版本历史、配置信息都存储在这里不要手动修改、删除该目录否则会丢失所有本地版本记录。4.2 查看仓库状态 git statusgit status是 Git 中最常用的命令建议每次操作前后都执行一次可以实时查看当前仓库的状态包括当前所在分支工作区中已修改、未暂存的文件暂存区中已暂存、未提交的文件未被 Git 跟踪的新建文件终端直接执行命令即可git status【图 13 git status 查看空仓库状态执行结果界面】【图 14 git status 查看包含暂存 / 未跟踪文件的仓库状态界面】4.3 工作区文件添加到暂存区 git addgit 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 commitgit commit是 Git 的核心命令作用是把暂存区的内容永久提交到本地仓库生成一个唯一的版本快照每个提交都会生成一个唯一的commit id用于后续版本回溯、管理。基础语法# 提交暂存区内容到本地仓库-m 后接本次提交的版本描述必填 git commit -m 版本描述信息 # 快捷命令跳过git add步骤直接提交所有已跟踪文件的修改新增文件不生效 git commit -am 版本描述信息最佳实践版本描述一定要清晰明确精准说明本次提交的修改内容比如fix: 修复了用户登录接口崩溃问题、feat: 新增温湿度数据采集功能方便后续回溯版本时快速识别修改内容团队协作中必须遵守该规范。【图 16 git commit 提交版本到本地仓库执行过程界面】4.5 版本历史查看 git loggit 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 pushgit 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/ # 忽略日志文件 *.logpush 推送被拒绝提示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 的高阶用法。