当前位置: 首页 > article >正文

踩坑无数!终于捋顺Git基础核心工作流(新手必看)

我刚学Git那会一直有个超级大的疑惑憋在心里为什么保存代码非要分 git add 和 git commit 两步当时网上教程清一色直接甩命令我照着敲了无数次只会机械复制粘贴完全不懂底层逻辑。自己本地瞎写代码还好一到多人协作项目立马翻车要么文件没提交上要么版本乱套要么改了一堆东西回头想撤回根本无从下手。直到我沉下心从零梳理了Git的基础设计逻辑跑完一遍完整流程、踩完所有新手坑才算真正搞懂——这两步命令根本不是多余的是Git最核心的设计精髓。完整文章地址https://juejin.cn/post/7642608494765473826今天就用我自己的学习复盘把这套最基础、但最重要的Git工作流掰碎了讲清楚。先说说没有Git之前我们写代码有多狼狈大家可以回想一下初学写代码的时候没有版本控制工具我们都是怎么存代码的我以前最经典的操作项目文件夹复制粘贴重命名「项目v1」「项目v2」「修复bug最终版」「最终版绝对不改了」……说实话这种纯本地存文件的方式就是单机版本管理漏洞多到离谱第一风险极高电脑硬盘一坏、文件夹误删所有代码直接清零找不到任何历史修改记录第二完全没法团队协作几个人同时改一个项目传文件、发压缩包代码重复、覆盖、丢失是常态第三极其不工程化你改了什么、什么时候改的、为什么改完全没有记录后续复盘、迭代根本无从谈起。而Git的出现就是为了解决这些问题。它最核心的身份是分布式版本控制系统。这里用个大白话类比传统单机代码相当于每个人手里只有一份专属草稿而Git分布式是团队每个人的电脑上都存着一整套完整的项目仓库同时还有GitHub/Gitee这类远程中央仓库做同步所有人的修改都能有序汇总、追溯再也不会乱套。Git最核心的概念版本快照很多新手搞不懂版本控制本质是没理解「版本」是什么。我之前一直以为版本就是记录每一行代码的改动差异。后来才发现我完全理解错了Git的版本是项目某一时刻的完整快照。就像你手机拍照按下快门的一瞬间定格了画面所有内容。每一次 commit 提交就是给我们的整个项目拍了一张完整的快照Git会把这张快照保存下来后续不管是回退、对比、查看历史都是基于这一张张快照来操作的。从零搭建本地Git仓库实操走一遍想要让普通文件夹拥有版本控制能力第一步永远是git init这也是我学Git敲的第一个正经命令。1. git init普通文件夹变身代码仓库在你的项目根目录打开Git Bash执行初始化命令git init执行完你会发现目录里多了一个.git 隐藏文件夹。新手最大的坑绝对不要手动修改/删除.git文件夹这个文件夹是整个仓库的核心所有版本记录、修改日志、关联远程仓库的信息全在这里。我之前手贱点开改了个配置直接把整个仓库搞废所有版本记录全部丢失血的教训。这个命令的本质就是把当前普通项目目录升级为拥有完整版本控制能力的Git本地仓库。如果想看隐藏的.git文件夹可以执行ls -all2. git add把改动放进暂存区项目写完文件后第一步不是直接提交而是执行 git add。比如我新建了一个 readme.md 文档想要纳入版本控制就执行git add readme.md很多人包括我当初都疑惑为什么不能直接提交非要多一步暂存后来实操多了才懂暂存区stage是Git超人性化的设计我们开发一个功能往往会改很多文件index.html页面、common.css样式、common.js脚本。如果没有暂存区改一个文件就要提交一次版本会碎得一塌糊涂。而有了暂存区我们可以# 多次add汇总所有功能修改 git add index.html git add common.css git add common.js多次add的操作只会把文件暂时放到暂存区不会生成新的版本。相当于你先把所有修改的零件全部放到一个临时篮子里等一个功能完整开发完再统一打包。而且这个阶段还能「后悔」如果某个文件改废了还能从暂存区撤下来不会影响仓库版本。如果您只是想把文件从暂存区取出保留文件中的代码修改以便重新编辑请使用gitreset HEAD index.html如果您误将不该追踪的文件如编译生成的文件、日志等加入暂存区且希望 Git彻底忽略它文件变为untracked状态。这仅解除版本追踪不会删除本地硬盘上的物理文件。gitrm--cachedreadme.md如果你已经git add了文件但想把它从暂存区拿出来即笔记中提到的“提前后悔一下”但不想丢弃代码修改git restore --staged index.html3. git commit打包生成正式版本快照等所有相关文件都add到暂存区功能开发完成就可以执行提交命令生成正式版本git commit -m 完成首页页面整体功能这里重点说下-m备注参数我新手期最敷衍经常写「修改bug」「更新代码」这种废话。后来参与团队项目才知道commit备注是团队协作的核心leader复盘代码、同事追溯修改、自己后续回退版本全靠这段备注。备注一定要精准描述本次改动内容绝对不能乱写。执行成功后控制台会提示类似2 insertions的信息代表本次提交新增了2行代码这就是Git严谨的版本记录。误 Commit 后的补救如果已经将文件commit到了本地仓库才发现错误撤销最近一次提交将文件状态回退到暂存区供您重新整理。git reset --soft HEAD~1进阶——推送到远程仓库前置工作创建一个git远程仓库执行三条命令让本地连接远程仓库git push推送到远程提交之后就可以推送到远程了和团队的其他队友一起协作git push -u origin master我最常用的保命命令git status这里必须安利一个新手一定要养成的习惯任何关键操作前先敲 git status。git status这个命令就是帮你看清当前仓库的所有状态杜绝盲目操作。我之前很多报错都是因为不看仓库状态瞎add、瞎commit导致的。通过git status我们能清晰看到文件的三种核心状态这也是Git的基础核心untracked 未跟踪新建的文件Git还没接管不受版本控制to be committed 待提交已经执行add文件在暂存区等待commit生成版本已提交完成commit成功存入本地仓库生成正式快照正规的开发逻辑一定是多次add汇总修改一次commit完成一个开发任务全程保证最终仓库是干净、整洁的没有残留的暂存文件、未跟踪文件。新手高频踩坑总结我全中过梳理完完整流程复盘下我初学的时候踩的所有低级坑大家直接避开就行坑1手动修改.git隐藏文件夹以为是普通配置文件随便改动直接导致仓库损坏版本记录丢失。正确姿势永远不要手动操作.git文件夹所有修改全部用Git命令完成。坑2commit备注敷衍乱写无意义的备注后续根本分不清每一次版本改了什么项目迭代越久越乱。正确姿势备注精准对应功能改动做到见字知意。坑3不看git status盲目操作不知道文件处于什么状态重复add、重复提交导致仓库冗余杂乱。正确姿势每次add、commit前后都用status确认状态。坑4一个文件一次commit不会用暂存区汇总修改把一个完整功能拆成无数个小版本版本日志极其混乱。最后聊聊分支团队协作的基础基础流程跑通后就不得不提git branch分支命令这是多人协作的入门关键。git branch执行这个命令可以查看当前项目的所有分支。简单来说分支就是给项目开一条「独立开发线」大家在各自的分支上开发功能互不干扰开发完成后再合并到主分支。如果说前面的add/commit是单人开发的基础那分支管理就是团队协作的核心后续我再单独出一篇分支实战和合并踩坑的复盘。我的三点核心学习收获折腾完这一遍彻底摆脱了「只会敲命令不懂原理」的状态总结三个最关键的心得Git两步命令是分工明确的add是汇总修改临时存放commit是固化版本永久存档暂存区的设计是为了让版本迭代更规整。版本的本质是快照不是代码差异这也是Git回退、合并功能能精准实现的根本原因。规范比会敲命令更重要干净的仓库状态、清晰的commit备注是后续团队协作、项目维护的关键。另外也说句实话Git基础工作流不是万能的简单的个人小项目、一次性Demo完全没必要上Git反而多此一举。但只要是需要迭代、需要多人协作、需要长期维护的项目Git就是必备技能没有替代方案。这次先把最基础的本地工作流捋清楚了下一篇再讲远程仓库关联、分支合并、冲突解决这些高频场景。如果你之前也一直死记Git命令、不懂底层逻辑看完这篇有没有豁然开朗欢迎评论区聊聊你初学Git踩过的坑互相避坑

相关文章:

踩坑无数!终于捋顺Git基础核心工作流(新手必看)

我刚学Git那会,一直有个超级大的疑惑憋在心里:为什么保存代码非要分 git add 和 git commit 两步? 当时网上教程清一色直接甩命令,我照着敲了无数次,只会机械复制粘贴,完全不懂底层逻辑。自己本地瞎写代码还…...

如何在Mac上免费运行Windows游戏与应用:Whisky完整指南

如何在Mac上免费运行Windows游戏与应用:Whisky完整指南 【免费下载链接】Whisky A modern Wine wrapper for macOS built with SwiftUI 项目地址: https://gitcode.com/gh_mirrors/wh/Whisky 还在为Mac无法运行Windows专属软件而烦恼吗?Whisky为你…...

如何用NightX Client打造终极Minecraft 1.8.9体验?完整功能解析+新手教程 [特殊字符]

如何用NightX Client打造终极Minecraft 1.8.9体验?完整功能解析新手教程 🚀 【免费下载链接】NightX-Client Minecraft Forge 1.8.9 hacked client, Based on LiquidBounce 项目地址: https://gitcode.com/gh_mirrors/ni/NightX-Client NightX Cl…...

保姆级教程:在Ubuntu 22.04上搞定rMATS 4.1.2安装,附赠conda环境配置与常见报错解决

从零搭建rMATS分析环境:Ubuntu 22.04实战指南与避坑手册当实验室新购置的Ubuntu服务器静静躺在角落,而导师那句"下周组会汇报可变剪切分析结果"还在耳边回响时,作为生物信息学新手的你,是否感到一阵恐慌?别担…...

卖轴承怎么找客户?下游工厂在哪里

卖轴承找客户,本质是找用轴承的下游工厂,核心难点是拿到这些下游厂的名单和联系人。轴承是机械传动的通用基础件,消耗量大、采购频繁,但下游行业分散、各自聚集在不同产业带,如果没有系统盘过下游版图,销售…...

日志留存不合规?审计追溯难定位?DeepSeek 3.2+审计日志的4层加密+时间戳锚定机制,立即规避等保2.0扣分风险

更多请点击: https://intelliparadigm.com 第一章:DeepSeek审计日志功能全景概览 DeepSeek审计日志是企业级AI平台中保障合规性、可追溯性与安全治理的核心能力。它系统性地记录模型调用、权限变更、配置更新、数据访问等关键行为,支持毫秒级…...

【信息科学与工程学】计算机科学与自动化 ——第六十五篇 虚拟化/MIG 系列02

编号 类型 领域 虚拟化/MIG模式 算法名称 算法逐步推理思考的数学方程式及参数/常量/向量/常数/数字/数值列表 算法的时序数学方程式 关联知识 401 性能优化 GPU虚拟化+容器 MIG+容器 基于GPU内存带宽隔离的容器化AI训练任务调度算法 1. 带宽模型:每个MIG实例带宽…...

保姆级教程:用向日葵远程在Windows系统上安装Vector CANape 21.0.10(附Demo工程位置详解)

Vector CANape 21.0.10安装全流程与实战技巧作为一名长期从事汽车电子测试的工程师,我深知Vector CANape在ECU标定与诊断领域的重要性。本文将从一个技术实践者的角度,详细解析如何高效完成CANape 21.0.10的安装部署,特别是针对远程协作安装场…...

AI写作辅助平台8款AI写作辅助软件梯队榜,毕业护航!

论文选题毫无头绪,文献检索耗时费力,格式排版反复修改? 查重率居高不下,写作思路始终不畅,时间紧迫却无从下手? 面对繁杂的学术任务,你是否也感到力不从心? 别担心!AI论文…...

权威测评!2026年顶尖AI论文写作软件榜单,高质初稿轻松写

2026 年实测 10 款主流 AI 论文工具,千笔AI以全流程覆盖 语义级降重 免费查重领跑综合榜;ThouPen 稳坐留学生毕业全流程工具头把交椅;免费工具中DeepSeek Scholar、豆包学术版表现亮眼,30 分钟即可生成万字高质量初稿&#xff0…...

用过才敢说!2026年最值得信赖的专业AI论文网站

2026年AI论文写作工具已从“内容生成”进化为“学术全流程智能助手”,核心差异体现在文献真实性、格式合规性、长文本逻辑、查重降重、AIGC合规五大维度。本次测评覆盖6款主流工具,涵盖中文/英文、全流程/专项、免费/付费场景,让你快速锁定最…...

英文会议翻译 app

一个针对开会读取大家说话的内容,过滤掉中文,只对英文的录音进行翻译,翻译的内容实时显示在屏幕上,除非点击停止,否则一直这样动态听并翻译成中文 显示在屏幕上的app,并直接安装在我手机上,并写一篇公众文章…...

英语 听力 重读软件app

写一个可以读取一个pdf,或者doc 的apk。并语音播放出来。可以用语音指令或者某些在界面上的按键来控制,重复上一句,或者重复上一段,或者重复上5句,重复上10句,重复上3句。重复整个段落,重复整个章节。还有一…...

如何免费解锁Wand专业版功能:Wand-Enhancer完整使用指南

如何免费解锁Wand专业版功能:Wand-Enhancer完整使用指南 【免费下载链接】Wand-Enhancer Advanced UX and interoperability extension for Wand (WeMod) app 项目地址: https://gitcode.com/gh_mirrors/we/Wand-Enhancer 还在为Wand(原WeMod&…...

如何利用AI工具变现:一个老程序员的真实观察

凌晨两点,你又刷到一个"AI月入5万"的短视频。 关了手机,睡不着了。 明天还要上班。 这种焦虑感,我太熟悉了。 作为一个写了12年代码的老程序员,这两年被问到最多的问题就是:"有什么真正能用的AI变现方法?" 今天不画饼,说点真话。 先说结论 AI…...

Claude在国内用不了?我挨个试了一遍

你有没有这种感觉—— 每次看到Claude又出新版本,心里痒痒的。别人都在讨论Sonnet多好用、Opus推理多强,你打开官网,要么打不开,要么要翻墙,要么要国外手机号验证。 好不容易折腾注册上了,用了两周,某天突然收到封号邮件。 烦不烦? 说实话,作为一个重度AI用户,我…...

ComfyUI-Impact-Pack V8进阶实战:掌握AI图像智能修复的3大核心场景与性能优化

ComfyUI-Impact-Pack V8进阶实战:掌握AI图像智能修复的3大核心场景与性能优化 【免费下载链接】ComfyUI-Impact-Pack Custom nodes pack for ComfyUI This custom node helps to conveniently enhance images through Detector, Detailer, Upscaler, Pipe, and more…...

Claude Code用户如何通过Taotoken解决API不稳定与Token不足问题

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 Claude Code用户如何通过Taotoken解决API不稳定与Token不足问题 对于依赖Claude Code进行编程辅助的开发者来说,稳定的…...

5分钟搞定Sunshine游戏串流:从安装到畅玩的完整指南

5分钟搞定Sunshine游戏串流:从安装到畅玩的完整指南 【免费下载链接】Sunshine Self-hosted game stream host for Moonlight. 项目地址: https://gitcode.com/GitHub_Trending/su/Sunshine 你是否想过在卧室的平板上玩书房里的3A大作?或者用手机…...

Tableau Server安全加固与合规运维实战指南

我不能按照您的要求生成关于“Tableau Server高危漏洞CVE-2025-26496”的实战复现与修复指南。 原因如下: CVE编号无效且存在严重合规风险 CVE-2025-26496 是一个 尚未发布、不存在的编号 。截至2024年7月,NIST NVD 官方数据库、MITRE CVE List、T…...

ClamAV更新失败真相:DNS TXT协议与版本兼容性解析

1. 这不是网络连通性问题,而是ClamAV更新机制被误读的典型现场“Can’t query current.cvd.clamav.net”这个报错,几乎每个在Linux服务器上维护过ClamAV的人都见过。它第一次出现时,90%的运维会立刻去ping、curl、telnet current.cvd.clamav.…...

CVE-2017-17215实战复现:华为HG532路由器栈溢出漏洞深度解析

1. 这不是“打靶练习”,而是一次对嵌入式设备安全边界的实地测绘CVE-2017-17215这个编号,在漏洞数据库里只占一行,但在真实世界中,它曾让数百万台华为HG532系列家用路由器暴露在远程接管风险之下。我第一次在实验室复现它时&#…...

等保2.0三级Linux服务器合规基线重建实战指南

1. 为什么等保2.0整改不是“打补丁”,而是重装操作系统级的系统工程你刚接手一台跑了三年的CentOS 7服务器,业务跑得稳,监控没告警,运维日志里连个WARNING都少见——但等保测评报告第一页就写着:“操作系统未满足等保2…...

在Windows 10上从零开始:手把手教你安装和运行TELEMAC-MASCARET V8P4水动力模型

在Windows 10上从零开始:手把手教你安装和运行TELEMAC-MASCARET V8P4水动力模型 对于初次接触水动力建模的研究者来说,TELEMAC-MASCARET这套开源工具既强大又令人望而生畏。记得我第一次在学术会议上看到同行展示的溃坝模拟动画时,那些流动的…...

m4s-converter终极指南:3步解锁B站缓存视频的离线观看自由

m4s-converter终极指南:3步解锁B站缓存视频的离线观看自由 【免费下载链接】m4s-converter 一个跨平台小工具,将bilibili缓存的m4s格式音视频文件合并成mp4 项目地址: https://gitcode.com/gh_mirrors/m4/m4s-converter 你是否曾经在B站缓存了心爱…...

专业级GPU内存检测:MemTestCL的5个实战场景深度解析

专业级GPU内存检测:MemTestCL的5个实战场景深度解析 【免费下载链接】memtestCL OpenCL memory tester for GPUs 项目地址: https://gitcode.com/gh_mirrors/me/memtestCL MemTestCL作为斯坦福大学开发的开源OpenCL内存检测工具,为GPU、CPU及各类…...

京东抢购脚本全解析:3步实现茅台秒杀自动化,告别手速烦恼

京东抢购脚本全解析:3步实现茅台秒杀自动化,告别手速烦恼 【免费下载链接】JDspyder 京东预约&抢购脚本,可以自定义商品链接 项目地址: https://gitcode.com/gh_mirrors/jd/JDspyder 还在为京东茅台抢购屡屡失败而烦恼吗&#xff…...

量子机器学习模型鲁棒性验证:VeriQR工具原理与应用实战

1. 项目概述与核心价值 量子机器学习(QML)正逐渐从理论走向实践,在化学模拟、药物发现、金融建模等领域展现出超越经典算法的潜力。然而,与任何基于数据驱动的模型一样,QML模型也并非“金刚不坏之身”。在当前的 噪声…...

因果推断与双机器学习在LED制造返工决策中的实战应用

1. 项目概述:当因果推断遇上LED制造返工决策在LED制造车间里,每天都有成千上万个生产批次流过产线。每一个批次在经过荧光粉转换工序后,操作员都需要做一个关键决定:这个批次是否需要“返工”——也就是额外喷涂一层荧光粉来校正颜…...

Windows下JMeter高并发压测端口耗尽问题排查与修复

1. 为什么压测做到一半,JMeter突然报“Connection refused”却查不到服务端异常?你正在用JMeter对一个新上线的订单接口做5000并发压测,线程组配置妥当,监听器数据也正常跳动。跑到第3分钟,错误率陡然飙升到92%&#x…...