一、痛点你的项目目录真的“工程化”吗很多初学者习惯把项目文件堆在一个文件夹里比如叫lgl_ai的目录。这在单人学习时似乎没问题但一旦遇到以下场景就原形毕露多人协作你改一行代码我改另一行怎么合并发微信传压缩包单机风险硬盘坏了所有历史修改瞬间归零。版本混乱想找回三天前的一个功能实现却发现文件已经被覆盖了。这背后的核心问题是没有版本控制。文件只是文件不是有历史记录、可回溯的“版本”。二、版本控制是什么——给文件装上“时光机”简单说版本控制就是记录一个文件或一组文件在不同时间的“快照”以便你随时可以回到某个历史状态。而Git是目前最流行的分布式版本控制系统。注意“分布式”三个字传统中央仓库SVN模式只有一台中央服务器有完整历史客户端只认最新版。Git分布式每个人的电脑上都有一个完整的代码仓库包括所有历史。中央仓库GitHub/Gitee/GitLab只是团队协作的“约定集散地”。这意味着就算中央服务器挂了任何一个人的本地仓库都可以恢复全部代码和历史。三、Git基础实操从零建立版本管理1.git init—— 让普通目录晋升为仓库打开终端进入你的项目目录执行git init你会发现目录下多了一个.git文件夹默认隐藏。这就是Git的“心脏”所有版本信息、配置都存这里。⚠️ 警告不要乱改.git里的文件除非你懂Git的内部结构。 小技巧在Windows上建议使用Git Bash它提供了一个最精简的Linux环境命令习惯统一。执行ls -all就能看到这个隐藏文件夹。2.git add—— 把文件放入“暂存区”git add readme.md这条命令把readme.md添加到了暂存区stage。终端会提示类似2 insertions的信息说明检测到了2行新增内容。为什么需要暂存区—— 为了让你能分批、有组织地提交。3.git commit—— 真正生成一个版本git commit -m 添加项目说明文档-m后面的描述非常非常重要。团队Leader主要靠这个理解你本次改动的目的。不要写“更新”、“修改”这种废话要写“修复登录页密码框闪烁问题”、“增加用户头像上传功能”这样有信息量的话。至此一个版本正式被记录到了仓库中。四、为什么一定要分add和commit两步这是新手最常问的问题。直接原因一个版本往往由多个文件的改动组成。举例你要完成“首页页面功能”可能需要改index.htmlcommon.csscommon.js你当然可以一个一个add但直到你执行commit之前仓库都还没有产生新版本。这给了你极大的灵活性git add index.html git add common.css # 突然发现 common.js 改错了想放弃这次提交 git reset # 可以取消暂存重新改 git add common.js # 改好后重新添加 git commit -m 首页页面功能工作流程总结add多次积累改动commit一次形成一个完整的、有意义的版本五、git status—— 你最该频繁使用的命令在任何不确定当前仓库状态的时候立刻执行git status它会清晰告诉你哪些文件是untracked未跟踪全新文件哪些文件是to be committed已暂存待提交哪些文件被修改了但还没add一个好习惯关键时刻切换分支、拉取代码、提交前先git status看一眼能避免90%的误操作。六、文件的四种状态重要Git将文件状态分为四类理解这个就能掌握Git的精髓状态含义举例untracked新文件从未被Git管理过你新建了一个test.pymodified已被追踪的文件发生了修改但未暂存改了readme.md还没addstaged已暂存等待提交执行了git add后的文件committed已提交安全保存在仓库中执行了git commit后追求的目标保持仓库干净 —— 即所有改动要么已经committed要么是合理的工作区修改。不要留下一堆未暂存、未提交的半成品。七、迈向团队协作添加远程仓库一个人的版本控制是开始真正的威力在于多人协作。# 添加一个远程仓库地址以GitHub为例 git remote add origin https://github.com/你的用户名/项目名.git # 把本地代码推送到远程 git push -u origin main之后队友就能git clone下来大家各自提交再git push/git pull同步。八、总结几条黄金习惯任何改动前先git status像开车前看后视镜一样自然。一个功能一个提交不要一次提交几十个不相关的文件。提交信息commit message要清晰团队Leader真的会看。多add少commit暂存区是你的后悔药。不要把.git文件夹删了除非你想自毁时光机。Git不难难的是一开始建立正确的工程习惯。从今天起告别“最终版_final_真最终版_v2.doc”让你的代码进入版本控制的文明时代。