Git版本控制完整教程
1、Git简介与核心价值1.1、Git在开发中的核心作用Git 在开发中可以管理好我们的代码包括代码的更改、删除、合并等极大提升团队协作效率和开发效率。实际运用场景在学校给的作业任务中要我们敲一个记账系统作为结课作业我们团队一起去敲代码那么如何将代码中写的功能给其他人最笨的方法是直接通过微信将文件压缩发送出去但这个方法太慢了并且它会随着文件的内存的增加导致发送的时间会不断延长。这还只是一个简单的个人项目的前端部分仅实现了基础的增删改查功能文件体积就已经如此庞大别说之后功能完善的项目了如果直接把文件发送给队员就很浪费时间开发效率也会被拖累更不要说之后的功能新增和删除还需要手动的去发送接收文件。但如果我们会 Git 就不一样了我们可以把项目代码直接上传到 GitHub 上面其他队员只需要安装 Git 并注册 GitHub 账号通过 Git 命令就能轻松获取项目代码。通过这个实际的案例我们可以看到 Git 在团队协作中的巨大价值免去手动传输文件的麻烦实现代码的即时同步和版本管理。常识我们把代码上传到Github上时不仅仅要去把项目代码上传还要去配置gitignore文件这个文件是用来声明哪一些代码不需要去上传到Github上的比如说 node_modules 还有 .env.local 文件等特别是现在是 AI 迅速发展的时代AI 密钥是常用的这就需要把 AI 密钥写在 .env.local 里面这个文件是我们自己创建的现在的发展可以靠 AI 去生成这部分 Git 代码和 .gitignore 里面的声明文件也可以靠 AI 生成。注意这里的代码不是全部的代码因为项目要跑起来不仅仅需要关键的代码还需要对应的依赖外部库封装的函数方法所以这个时候我们可以使用终端运行 npm i 就可以安装项目运行起来需要的对应依赖了也就是主要安装node_modules 文件。我使用的是 VSCode Git 命令、npm 命令都在下面的终端运行快捷键是 ctrl shift ~ 。注意这里的括号不是快捷键的一部分。1.2、为什么每个开发者都必须掌握Git:在上面的 1.1 内容中我们可以看到 Git 在团队协作开发中的巨大优势但这还不足以说明为什么 Git 是每个开发者必须掌握的技能让我们从以下几个关键维度来分析1.2.1、技术架构优势分布式 VS 集中式Git 采用分布式版本控制架构这与传统的集中式版本控制系统如SVN有本质的区别。集中式版本控制系统所有的代码都存储在中央服务器中服务器一旦损坏整个团队将无法工作每次的提交、查看历史等操作都需要连接网络同时服务器损坏可能会导致代码历史丢失。分布式版本控制中每一个开发者的本地仓库都是完整的副本包含全部的历史记录即使断网也可以正常提交代码、查看历史操作、创建分支同时数据有多重备份可以极大降低丢失的风险方便我们灵活地与多个远程仓库协作。这种分布式架构让 Git 在可靠性、灵活性和协作效率方面都远超集中式版本控制系统。1.2.2、求职就业需求Git 已经成为技术岗位的硬性要求可以从多个维度得到验证在牛客网、力扣等技术社区查看优秀简历可以搜索到超过 90% 的开发者都将 Git 作为必备技能列出缺乏 Git 经验的简历在筛选阶段可能被淘汰掉。在 Boss 直聘等招聘平台上绝大多数前端、后端、全栈岗位都明确要求需要熟悉 Git 版本控制从初创公司到一线大厂Git 都是技术面试的基础考点。面试上Git 分支管理是面试中的高频考点常问问题包含分支策略、合并冲突解决、工作流规范等掌握 Git 能体现开发者的工程素养和团队协作能力。1.2.3、个人开发价值即使独立开发Git 也能为个人项目带来显著价值部署现代部署平台如Vercel、阿里云等都深度集成 Git 部署流程通常为推送代码到 GitHub自动触发部署流水线没有 Git 仓库很多一键部署功能都无法使用。此外GitHub 等代码托管平台已成为程序员的‘技术名片’优质的项目仓库是求职时的有力证明。代码管理效率版本历史记录能随时回退到任意版本避免操作损失分支的出现可以安全尝试新功能不影响主线开发进度云端存储代码可以有效防止本地数据丢失。开发流程标准化即使单人项目使用 Git 也能培养良好的开发习惯为未来参与团队开发打下坚实基础。2、版本库创建与基础概念2.1、Git 工作区与版本库关系2.1.1、工作区就是你电脑里能看见的项目目录你在这里直接编辑、新建、删除文件。可以看作是你的书桌你需要在书桌上摊开稿纸随意书写、修改、甚至揉碎废弃编辑、新建、删除等操作的草稿。2.1.2、暂存区一个存放在 .git 目录下的中间区域也被称为“缓存区”它像一个准备台或打包区。可以看作是书桌旁边的一个文件框你把觉得写的不错、准备最终提交的草稿页暂时放进这个框里面。2.1.3、版本库工作区内的隐藏目录 .git 这是 Git 的核心他自动会创建第一个分支 master 以及指向 master 的指针 HEAD 。可以看作是书桌上的档案柜你把文件框里整理好的草稿打上标签提交信息然后永久地存入档案柜你可以随时从档案柜里取出任何一份历史版本。2.2、git init -- 初始化本地仓库在项目根目录执行git init会在当前目录创建一个.git子目录从此该目录就成为 Git 仓库。之后就可以进行版本控制操作了。3. Git 常用指令速查下面这些指令我问的是 AI 因为现在这些指令 AI 命中率很高正确率所以这部分你直接拿 AI 跑就行你大概看一下知道有哪些指令大概作用就可以了。3.1 仓库初始化与克隆命令说明git init在当前目录初始化一个新的 Git 仓库git clone 仓库地址克隆远程仓库到本地例如git clone https://github.com/user/repo.git3.2 查看状态与差异命令说明git status查看工作区和暂存区的当前状态哪些文件被修改、哪些未追踪等git diff查看工作区与暂存区之间的差异未暂存的修改git diff --staged查看暂存区与最新提交HEAD之间的差异已暂存的修改git log查看提交历史按时间倒序git log --oneline --graph以简洁图形方式查看分支历史非常实用git show commit-id查看某次提交的详细变更内容3.3 添加与提交核心三板斧命令说明git add 文件将指定文件添加到暂存区准备提交git add .添加当前目录下所有变更新增、修改、删除到暂存区git add -u仅添加已追踪文件的变更不包括新文件git commit -m 提交信息将暂存区内容提交到版本库并附上说明git commit -am 信息跳过git add直接提交所有已追踪文件的变更相当于git add -ucommit3.4 远程仓库操作命令说明git remote add origin url添加远程仓库通常命名为origingit remote -v查看当前配置的远程仓库地址git push origin 分支名将本地分支推送到远程仓库如git push origin maingit push -u origin 分支名首次推送并建立本地分支与远程分支的关联之后可直接git pushgit pull origin 分支名从远程仓库拉取最新代码并合并到当前分支相当于fetchmergegit fetch origin仅下载远程更新但不合并手动查看后再决定是否合并3.5 分支管理命令说明git branch列出所有本地分支当前分支前有*标记git branch 分支名创建一个新分支但不会切换git checkout 分支名切换到指定分支git switch 分支名Git 2.23 推荐的新命令用于切换分支git checkout -b 分支名创建并切换到新分支常用git switch -c 分支名同上新版推荐写法git merge 分支名将指定分支合并到当前分支git branch -d 分支名删除本地分支已合并的git branch -D 分支名强制删除本地分支即使未合并git push origin --delete 分支名删除远程分支3.6 撤销与回退命令说明git restore 文件撤销工作区对文件的修改恢复到暂存区或 HEAD 的状态git restore --staged 文件将文件从暂存区撤出但保留工作区修改git reset --soft HEAD~1撤销上一次提交但保留工作区和暂存区修改可重新提交git reset --mixed HEAD~1撤销上一次提交保留工作区修改但清空暂存区默认行为git reset --hard HEAD~1彻底撤销上一次提交同时丢弃工作区和暂存区所有修改危险丢失数据git revert commit-id创建一个新的提交用来撤销某次历史提交安全不影响历史3.7 标签管理常用版本发布命令说明git tag列出所有标签git tag 标签名创建轻量标签例如git tag v1.0git tag -a 标签名 -m 说明创建带注释的标签git push origin 标签名推送特定标签到远程git push origin --tags推送所有本地标签到远程git tag -d 标签名删除本地标签git push origin --delete 标签名删除远程标签3.8 其他实用命令命令说明git stash暂时保存工作区修改未提交让工作区恢复干净git stash pop恢复最近一次 stash 的修改并删除该 stashgit stash list查看所有 stashgit cherry-pick commit-id将某次提交“捡”到当前分支用于选择性合并git reflog查看本地所有操作记录包括被 reset 掉的提交用于恢复误操作git config --global user.name 你的名字设置全局用户名git config --global user.email 你的邮箱设置全局用户邮箱第一次使用 Git 时必须配置4、实际项目注意在实际项目开发中尤其是团队协作绝对不能直接在main或master主分支上开发或推送代码。正确的做法是先克隆clone远程仓库到本地然后基于主分支创建新的功能分支feature branch在分支上完成开发、测试最后通过合并请求Pull Request / Merge Request将代码合并回主分支。4.1 、为什么不建议直接 Push 到主分支你可能会想“我就改了一行代码直接推送上去不就行了吗”但在实际生产项目中直接往主分支推送会带来巨大风险绕过代码评审Code Review主分支通常受保护直接推送会跳过团队评审流程其实实际项目里面你可能没有这个权限但是不排除你公司领导没有做这部分的防护没做防护你直接 push 上去这样你就要被骂一顿容易引入低质量代码或逻辑漏洞。破坏构建稳定性如果推送的代码有问题比如忘记安装依赖、语法错误会导致整个项目的持续集成CI失败阻塞其他所有成员的开发进度。冲突难以处理多人同时往主分支推送时后推送的人大概率会遇到冲突。若对冲突处理不当可能导致他人的代码被覆盖或丢失。无法回滚与追溯直接在主分支上提交会让提交历史变得杂乱无章。一旦出问题很难快速定位并回滚到上一个稳定版本。记住主分支main/master必须是“随时可部署”的稳定状态它是项目的生命线不是个人的草稿本。记住主分支main/master必须是“随时可部署”的稳定状态它是项目的生命线不是个人的草稿本。

相关新闻

InceptionTime震撼登场:时间序列分类领域的AlexNet革命

InceptionTime震撼登场:时间序列分类领域的AlexNet革命

InceptionTime震撼登场:时间序列分类领域的AlexNet革命 【免费下载链接】InceptionTime InceptionTime: Finding AlexNet for Time Series Classification 项目地址: https://gitcode.com/gh_mirrors/in/InceptionTime InceptionTime是GitHub加速计划中的明星…

2026/7/29 19:56:33 阅读更多 →
计算机毕业设计之基于SpringBoot的餐饮库存追踪系统设计与实现

计算机毕业设计之基于SpringBoot的餐饮库存追踪系统设计与实现

随着信息技术的飞速发展和互联网的普及,线上管理平台已成为当今社会经济发展的重要驱动力之一。本研究旨在设计并实现一个基于Java的餐饮库存追踪系统,在技术选择上,本项目采用了JAVA语言,MySQL数据库编程,使用springb…

2026/7/29 19:56:33 阅读更多 →
C语言一维数组转二维数组的三种实现方法与性能对比

C语言一维数组转二维数组的三种实现方法与性能对比

1. 项目概述与核心价值在C语言编程的日常开发中,数据结构的转换是绕不开的基础操作。今天要聊的“一维数组转二维数组”,听起来简单,但里面藏着不少门道。很多新手,甚至一些有经验的开发者,在处理这个问题时&#xff0…

2026/7/29 19:55:33 阅读更多 →

最新新闻

Ark-Pets:将明日方舟干员变为你的智能桌面伙伴的终极指南

Ark-Pets:将明日方舟干员变为你的智能桌面伙伴的终极指南

Ark-Pets:将明日方舟干员变为你的智能桌面伙伴的终极指南 【免费下载链接】Ark-Pets Arknights Desktop Pets | 明日方舟桌宠 (ArkPets) 项目地址: https://gitcode.com/gh_mirrors/ar/Ark-Pets 你是否曾幻想过让《明日方舟》中那些可爱的干员走出游戏&#…

2026/7/29 20:07:37 阅读更多 →
Pixelle-Video:AI视频创作革命,5分钟从创意到专业短视频

Pixelle-Video:AI视频创作革命,5分钟从创意到专业短视频

Pixelle-Video:AI视频创作革命,5分钟从创意到专业短视频 【免费下载链接】Pixelle-Video 🚀 AI 全自动短视频引擎 | AI Fully Automated Short Video Engine 项目地址: https://gitcode.com/GitHub_Trending/pi/Pixelle-Video 你是否曾…

2026/7/29 20:07:37 阅读更多 →
零基础入行高端制造——华海数控与威飞海洋的校企合作深度解读

零基础入行高端制造——华海数控与威飞海洋的校企合作深度解读

一、数控自动化技能培训行业生态与校企合作新范式步入2026年,中国高端装备制造业正迎来国产化替代与深海能源开发的战略窗口期。海洋油气装备、精密数控加工、自动化产线集成等关键领域,对技术工人的要求正从单一机床操作向"懂编程、会调试、能适配…

2026/7/29 20:07:37 阅读更多 →
终极指南:如何用MAA明日方舟助手实现游戏自动化,每天节省3小时游戏时间

终极指南:如何用MAA明日方舟助手实现游戏自动化,每天节省3小时游戏时间

终极指南:如何用MAA明日方舟助手实现游戏自动化,每天节省3小时游戏时间 【免费下载链接】MaaAssistantArknights 《明日方舟》小助手,全日常一键长草!| A one-click tool for the daily tasks of Arknights, supporting all clien…

2026/7/29 20:07:37 阅读更多 →
Turbo Boost Switcher:掌控Mac性能的终极免费解决方案

Turbo Boost Switcher:掌控Mac性能的终极免费解决方案

Turbo Boost Switcher:掌控Mac性能的终极免费解决方案 【免费下载链接】Turbo-Boost-Switcher Turbo Boost disabler / enable app for Mac OS X 项目地址: https://gitcode.com/gh_mirrors/tu/Turbo-Boost-Switcher 你是否曾经在安静的图书馆工作&#xff0…

2026/7/29 20:07:37 阅读更多 →
如何快速掌握Joplin全局搜索:面向初学者的完整教程

如何快速掌握Joplin全局搜索:面向初学者的完整教程

如何快速掌握Joplin全局搜索:面向初学者的完整教程 【免费下载链接】joplin Joplin - the privacy-focused note taking app with sync capabilities for Windows, macOS, Linux, Android and iOS. 项目地址: https://gitcode.com/GitHub_Trending/jo/joplin …

2026/7/29 20:06:36 阅读更多 →

日新闻

【RT-DETR多模态创新改进】CVPR 2025 | 独家特征融合创新改进篇 | 引入RLAB残差线性注意力模块,有效融合并强调多尺度特征,多种改进点,适合红外与可见光融合目标检测任务,有效涨点

【RT-DETR多模态创新改进】CVPR 2025 | 独家特征融合创新改进篇 | 引入RLAB残差线性注意力模块,有效融合并强调多尺度特征,多种改进点,适合红外与可见光融合目标检测任务,有效涨点

一、本文介绍 🔥本文在RT-DETR多模态融合目标检测中引入RLAB残差线性注意力模块,可在不同模态特征交互阶段进行多次残差细化,使可见光、红外等特征在尺度、语义和空间位置上更好对齐;随后将细化特征与解码器输出拼接并生成Q、K、V,通过线性注意力自适应强化关键通道、目…

2026/7/29 0:00:23 阅读更多 →
AI编程系列02:合并知识功能,给 AI 问数和 RAG 场景打基础

AI编程系列02:合并知识功能,给 AI 问数和 RAG 场景打基础

AI编程系列02:合并知识功能,给 AI 问数和 RAG 场景打基础 在上一期「AI编程系列」中,我们学习了如何构建一个基础的 AI 问答系统,通过简单的输入输出让模型回应问题。但现实世界中的 AI 应用往往需要处理更复杂的场景:…

2026/7/29 0:00:23 阅读更多 →
AI智能体开发实战:从工具调用到企业级部署

AI智能体开发实战:从工具调用到企业级部署

1. 从被动问答到主动执行:AI Agent的范式转变过去两年,大语言模型最显著的应用形态是聊天机器人——用户提问,AI回答。但真正的生产力革命发生在2023年下半年:当AI学会主动调用工具完成任务时,生产力工具的历史被彻底改…

2026/7/29 0:00:23 阅读更多 →

周新闻

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 数据集6000张 完整源码已标注数据集训练好的模型环境配置教程程序运行说明文档,可以直接使用!系统支持图片、视频、摄像头等多种方式检测裂缝,功能强大实用。 1数据集6000张 8各类别

2026/7/28 12:04:22 阅读更多 →
深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

pubg数据集 精选原图1.42万数据 1.49万标签 无任何重复、算法增强或冗余图像! pubg绝地求生目标检测数据集 1分类:e_body,14905个标签,txt格式 共计14244张图,99%为640*640尺寸图像 适合yolo目标检测、AI训练关键词&am…

2026/7/29 14:34:28 阅读更多 →
Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex检测数据集数据集详情检测类别: allies enemy tag图片总量:7247张训练集:5139张验证集:1425张测试集:683张标注状态:全部已标注,即拿即用数据格式:支持YOLO格式及其他格式&#…

2026/7/29 15:00:03 阅读更多 →

月新闻