零基础Git入门:Linux+Gitee实战指南

本文面向 Git 零基础新手,基于 Linux 环境 + Gitee 码云平台,从核心原理、环境搭建,到核心命令、团队协作、冲突解决全流程拆解,手把手带你掌握 Git 版本控制工具,所有操作均附实战示例与效果展示,可直接跟着操作落地。

一、Git 的核心作用

Git 是目前业界最主流的分布式版本控制系统,核心用于工程项目的代码与文件管理,无论是单人开发还是多人团队协作,都能完美适配,核心价值体现在以下 3 个方面:

  1. 多人协同开发支持多开发者同时对同一个项目进行修改、迭代,最终可以无缝合并各自的修改内容,解决了传统文件拷贝、邮件传代码的协作混乱问题。
  2. 版本回溯与管理会将项目研发的每一个迭代版本独立保存,每一个版本都有唯一的标识,你可以随时回退到任意历史版本,再也不怕改崩代码无法恢复。
  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 新建远程仓库
  1. 点击首页的「创建我的仓库」按钮,进入新建仓库配置页面;
  2. 填写仓库核心配置信息:
    • 仓库名称:自定义,建议使用英文、数字、下划线组合,不要用中文和特殊符号
    • 归属:选择个人账号,路径会根据仓库名称自动生成
    • 仓库介绍:简要描述仓库用途,可选填
    • 权限:开源(所有人可见)/ 私有(仅仓库成员可见),个人练习建议选私有
    • 初始化仓库:新手建议勾选,会自动生成 README、.gitignore 等基础文件
  3. 配置完成后,点击「创建」按钮,即可完成远程仓库的创建。

【图 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 平台
  1. 打开 Gitee 官网,登录账号,点击右上角个人头像,进入「设置」页面;
  2. 在左侧菜单栏中,找到「SSH 公钥」选项,进入公钥配置页面;
  3. 将上一步复制的公钥内容,粘贴到「公钥」输入框中,标题自定义(比如 "个人开发电脑");
  4. 点击「确定」,完成公钥添加,可能需要验证 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 多人协作的标准工作流

多人团队开发时,必须遵守统一的工作流程,才能避免代码冲突、版本混乱,标准流程如下:

  1. 拉取最新代码 :每次开发前,先执行git pull origin master,拉取远程仓库的最新代码,确保本地代码和云端同步;
  2. 本地开发修改:在本地完成代码编写、功能开发、自测;
  3. 提交本地版本 :开发完成后,执行git add .git commit -m "版本描述",将修改提交到本地仓库;
  4. 再次拉取最新代码 :推送前再次执行git pull,防止开发过程中其他人提交了新的代码,避免推送失败;
  5. 解决合并冲突:如果拉取时出现冲突,和团队成员协商,完成冲突解决,重新提交修改;
  6. 推送到远程仓库 :无冲突后,执行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 冲突解决步骤
  1. 协商确认内容:打开冲突文件,和对应的开发人员沟通,确认最终要保留的代码内容,决定保留本地修改、远程修改,还是两者都保留并整合;
  2. 删除冲突标记 :修改完成后,删除文件中所有的冲突标记(<<<<<<<=======>>>>>>>),确保代码语法正常;
  3. 重新提交修改 :冲突解决完成后,执行git add .git commit -m "fix: 解决代码合并冲突",将修改提交到本地仓库;
  4. 推送到远程仓库 :执行git push origin master,将解决冲突后的版本推送到远程仓库,冲突解决完成。

【图 25 冲突解决后重新提交并推送的执行过程界面】

冲突规避最佳实践:

  1. 开发前、推送前必须先拉取最新代码,降低冲突概率;
  2. 团队内做好分工,避免多人同时修改同一个文件的同一模块;
  3. 小步快跑,频繁提交、频繁拉取,避免一次性提交大量代码,导致冲突难以解决。

六、Git 新手常见坑与避坑指南

  1. 提交后发现版本描述写错了,怎么修改? 执行git commit --amend,可以修改最后一次提交的版本描述,也可以把当前未提交的修改合并到上一次提交中。

  2. 误删了工作区的文件,怎么恢复? 执行git checkout -- 文件名,可以从本地仓库中恢复该文件到最后一次提交的状态,前提是该文件已经被 Git 跟踪过。

  3. 有些文件不想被 Git 提交到仓库,怎么办? 在项目根目录创建.gitignore文件,在文件中写入要忽略的文件 / 文件夹路径,Git 会自动忽略这些文件,不会跟踪它们的修改。示例:

    复制代码
    # 忽略所有.o结尾的编译文件
    *.o
    # 忽略临时文件夹
    tmp/
    # 忽略日志文件
    *.log
  4. push 推送被拒绝,提示fetch first,怎么解决? 这是最常见的报错,原因是远程仓库有你本地没有的提交,先执行git pull origin master拉取最新代码,解决冲突后,再重新 push 即可。

  5. 配置了 SSH 公钥,拉取 / 推送还是提示输入密码? 大概率是你的远程仓库关联用了 HTTPS 链接,执行git remote -v查看,若地址是 https 开头,执行git remote set-url origin 你的SSH仓库链接更换为 SSH 格式即可。

七、总结

本文从 Git 核心原理出发,完整覆盖了环境搭建、核心命令、团队协作、冲突解决全流程,是一套完整的 Git 零基础入门教程,所有操作都可以直接跟着落地。

Git 是嵌入式开发者的必备工具,核心在于多练多用,熟练掌握后,无论是单人开发的版本管理,还是多人团队的协作开发,都能大幅提升效率。后续进阶可以学习 Git 分支管理、Git Flow 工作流、标签 tag 管理等内容,进一步掌握 Git 的高阶用法。

相关推荐
怕浪猫25 分钟前
FDE 最大的浪费不是写出有 bug 的代码,而是漂亮地解决了一个错误的问题
面试·架构·github
贝锐1 小时前
从国产化信创设备到商用安卓终端,向日葵如何帮助企业实现统一运维管理?
linux·运维·远程控制
Julien20042 小时前
调查和解决 SELinux 问题
linux·运维·服务器·网络·学习方法
黄敬峰3 小时前
Next.js 全栈实战:数据清洗、ORM 设计与 AI Prompt 工程最佳实践
面试·github
小张同学a.4 小时前
Docker 容器实战 1—— docker 基础与镜像构建
linux·运维·docker·容器
Best-Wishes7 小时前
BurpSuite Pro教育版在linux系统中配置
linux·运维·服务器·网络安全·burpsuite
wuminyu7 小时前
深入剖析 Panama Off-heap 的性能损耗与开销
java·linux·c语言·jvm·c++
虎王物联7 小时前
RK3568嵌入式Linux跑Docker:内核配置排查到AIoT容器化的完整路径
linux·运维·docker·rk3568·aiot·嵌入式linux
峰向AI7 小时前
AI reads books:用 AI 逐页「啃」PDF 的知识提取器,一个脚本搞定一切
github
GeW7 小时前
不只靠技术:RHCE考试的5个隐藏得分点
linux