新闻详情

新闻详情

首页 / 资讯中心 / 详情

Git + Gitee 从入门到实战:版本控制、日常操作与高频排错

发布时间:2026/10/2 9:02:41来源:尧图网络
Git + Gitee 从入门到实战:版本控制、日常操作与高频排错
在代码这行里摸爬滚打的人八成都有过一段“手工作坊”式的黑历史。我自己刚入行那两年管代码就靠一个U盘和一堆压缩包项目改上三个月文件名从 v1.0 进化到 v1.0_final再到 v1.0_final_真不改了极限状态能出现 v1.0_final_真的不改了_last。结果某天和同事同时改了同一个文件合并的时候谁也没通知谁一下午白干那种感觉就像手工作坊里唯一的图纸被撕了。后来把 Git 和 Gitee 这套流程吃透我才意识到代码管理这件事根本不该靠人肉记忆和文件命名来硬扛。这篇东西是我从“文件管理器管理代码”切换到“版本控制系统管理代码”的全过程记录。Git 怎么装、怎么配置Gitee 上怎么建仓库、怎么配 SSH 密钥免密登录平时最高频的克隆、提交、推送、分支合并怎么操作IDEA 和 VS Code 怎么联动还有一堆新手必踩的高频报错怎么排查我会一次讲透。基础薄的同学可以照着步骤一步步来已经上手的人也能把一些“知其然不知其所以然”的原理补补全。1. 为什么是 Git Gitee先告别“手工作坊”思维1.1 你并不笨只是还在用“文件夹命名法”管理版本我见过太多刚开始接触版本控制的同学第一反应是“我代码量不大一个人写用 Git 是不是没必要”。这个想法很真实但也很危险。你现在的代码量不大不代表一个月后不大。等到项目变得复杂你很难记得住三天前改过哪个函数、为什么改、当时是抄的哪份配置。手动备份的文件夹结构通常长这样项目-最终版 项目-最终版-改 项目-最终版-改2 新建文件夹 新建文件夹(2)这种命名法的本质是拿文件名当版本号拿复制粘贴当备份拿聊天记录当变更日志。它有两个致命问题一是没有历史记录代码改出问题想回退只能靠记忆翻找“昨天那个好像能跑”的文件夹二是多人协作时根本无法并线两个人同时改一个文件后保存的人直接覆盖前一个人的工作连提示都没有。版本控制系统解决的就是这两件事。Git 能记录每一个文件的每一次改动能随时回到任意一次提交能让你在分支上放心大胆地试错。它不挑语言、不挑IDE、不挑操作系统是程序员这一行里最接近“通用基础设施”的东西。1.2 Git 的三个区和一次提交背后的原理新手学 Git 最容易卡住的地方是搞不懂add、commit、push这三个命令到底在干嘛。这里我用游戏存档来打比方。Git 把所有操作分成三个区域工作区你电脑里正在编辑的文件相当于游戏里正在打的这关改动还没被记录。暂存区Index你告诉 Git“这些改动我准备记录了”的地方相当于在存档点按下“记录”前勾选要保存的游戏进度。本地仓库已经落盘的历史记录相当于存好的存档文件。commit就是正式生成一个存档每个存档有编号、有作者、有提交时间、有说明文字。远程仓库存放在服务器比如 Gitee上的完整副本相当于把存档同步到云端防止本地硬盘坏了全丢。日常操作流就是git add把工作区的改动放进暂存区git commit把暂存区的内容打成一个存档git push把本地存档同步到远程仓库。而git pull则是把远程仓库的新存档拉回本地。理解了这三个区后面所有命令都不难记。比如git status就是在问“当前有哪些改动还没进暂存区、哪些进了暂存区还没提交”git diff就是在问“具体是哪些行变了”。这三个区的设计是 Git 的核心也是它和 SVN 这类集中式版本控制最大的差异点。SVN 的提交和推送是绑在一起的而 Git 可以攒一批改动分多次提交每次提交都保持逻辑独立这样以后git log看历史时会非常清晰。1.3 Gitee 与 GitHub 怎么选为什么新手推荐 Gitee说起代码托管平台大家首先想到的是 GitHub。但如果你是国内开发者或者团队主要在国内Gitee码云其实是更顺手的入门选择。Gitee 的几个优势很实在访问速度快不需要额外折腾网络界面全中文新手友好免费用户就能创建私有仓库代码可以不公开内置了 Issue、Pull Request、代码评审、文档管理这些团队协作功能还提供 Gitee Pages静态博客和个人文档可以直接部署上去。有人会纠结“GitHub 才是国际主流我学 Gitee 是不是学偏了”。其实不用担心Git 本身是跨平台的Gitee 和 GitHub 用的都是同一套 Git 协议和命令学会了在 Gitee 上协作换到 GitHub 只是改一个仓库地址的事。甚至可以用git remote add把同一个仓库同时推到两个平台做镜像同步。对大多数国内中小团队、课程作业、个人项目来说Gitee 是稳的选择。2. Git 安装与环境初始化配置装好改对后面才不闹心2.1 Windows 下载安装要点版本和那几个勾选框Git 在 Windows 上推荐直接去官网 git-scm.com 下载安装包。下载的时候注意区分 32 位和 64 位现在绝大多数电脑是 64 位。下载完双击安装一路 Next 也能跑起来但有三个关键节点建议多看两眼。第一处是选择 PATH 环境变量有三个选项1. Git from the command line and also from 3rd-party software推荐 2. Git from the command line only 3. Only show Git Bash推荐选第一个这样 Git 会安装到系统 PATH 里CMD、PowerShell、IDEA、VS Code 都能直接调用git命令。很多人在 IDEA 里报“git 找不到”就是因为当初选了第三个IDE 找不到可执行文件。第二处是换行符转换方式这也是新手最容易踩的坑。Windows 的换行符是 CRLF回车换行Linux 和 macOS 是 LF只换行。如果不同平台的人频繁提交Git 默认会在检出和提交时自动转换避免文件因为换行符差异被整体标记为修改。安装时建议选“Checkout as-is, commit as-is”然后用git config --global core.autocrlf按团队约定统一这个我在 2.2 里细说。第三处是 Git Bash 的默认终端模拟器选默认的 MinTTY 就行效果和 Linux 终端很像建议保留。装完后打开 Git Bash敲git --version能看到类似git version 2.40.0.windows.1的输出就说明装好了。这个版本号不要太旧如果还是 2.2x 系列建议升级新版对 Windows 下的路径处理、性能和多密钥支持都好很多。2.2 全局身份配置与 CRLF/LF 的坑Git 每次提交都要记录作者所以必须先设置全局用户名和邮箱。在 Git Bash 里执行git config --global user.name 你的名字 git config --global user.email 你的邮箱注意两点。第一这里的邮箱不一定非得是注册 Gitee 的邮箱但强烈建议保持一致这样平台能正确地把提交记录关联到你的账号上。第二--global是当前用户全局生效如果不同项目要用不同身份可以去掉--global在某个仓库目录下单独设置。下面是换行符问题。Windows 安装 Git 时默认选项通常是Checkout Windows-style, commit Unix-style也就是本地自动转 CRLF提交时转为 LF。这个设置在纯 Windows 环境问题不大但如果项目里有 Linux/macOS 的同事容易出现两件事一是git diff显示整个文件的每一行都变了其实只是换行符不同二是配置文件在不同系统上行为不一致引发离奇的运行问题。我的建议是如果团队内统一用 Windows保持默认问题不大如果跨平台统一提交为 LF本地检出也用 LF在 Windows 上设置git config --global core.autocrlf false或者按项目根目录放一个.gitattributes文件来规范。.gitattributes里的写法大致是* textauto *.sh text eollf *.bat text eolcrlf这样仓库里始终保持统一的行尾风格跨平台协作会舒服很多。说实话这个坑不到项目出问题很难注意到但注意一次能省一整晚的排查时间。2.3 终端工具Git Bash 还是 Windows TerminalGit 装完会附带一个 Git Bash它是一个模拟 Linux 环境的终端里面支持pwd、ls、cd、mkdir这些 Unix 命令对新手来说这是最接近教程里命令行的环境。缺点是默认窗口样式比较朴素字体和复制粘贴体验一般。如果你比较在意终端体验可以装 Windows Terminal然后在里面添加 Git Bash 的配置文件。启动 Git Bash 本质就是运行C:\Program Files\Git\git-bash.exeWindows Terminal 里可以把启动命令指定为这个路径然后就能获得现代终端的外观 Git Bash 的命令环境。这个组合我现在日常开发一直在用体验很稳。还有一点要提醒CMD 和 PowerShell 也能敲 Git 命令但命令风格和系统行为略有差异比如 PowerShell 里ls是另一个实现的别名格式不同新手容易困惑。所以入门阶段建议统一用 Git Bash少踩环境差异的坑。3. Gitee 准备与 SSH 密钥配置一次配置永久免密3.1 注册、创建仓库与开源许可证怎么选Gitee 的注册流程不用多说用手机号或者邮箱就能注册。登录后点击右上角的“”新建仓库会看到一个创建表单。先填仓库名称可以包含字母、数字、短横线和下划线。下面有两个关键选项私有/公开私有仓库只有你和被邀请的成员能看适合课程作业、公司内部项目、还没做完的个人项目公开仓库任何人都能看适合开源项目。新手如果只是练手建议选私有后续想转公开随时能改。初始化仓库可以把“生成 README 文件”、“使用 .gitignore 文件按语言模板生成”、“使用开源许可证”三个选项勾上。README 是仓库的门面写清楚项目是什么、怎么跑.gitignore 能自动帮你过滤掉target/、node_modules/、.idea/这类不该提交的文件许可证则是开源项目的法律基础。有个热词是“Gitee 开源许可证选什么”这里展开说。许可证的本质是“你授权别人可以用你的代码做什么、要附带什么条件”。常见选择许可证核心特点适合场景MIT最宽松允许商用、修改、分发只需保留版权声明个人开源项目、库、工具Apache 2.0宽松附带专利授权条款防御性更好企业级开源项目GPL 3.0传染性强衍生作品也必须开源希望“用了我的代码改出来的也要开源”的项目如果你只是建私有仓库自己用完全不用选许可证公开发布但不想惹麻烦选 MIT 最省心。还有一个高频问题“Gitee 创建的仓库能包含子项目吗”答案是能。仓库本质上就是一个 git 存储库一个仓库里可以放多个子项目就是不同的子目录。但如果你希望子项目独立版本管理、能被其他仓库单独引用那就得用 Git 的 submodule 机制命令是git submodule add url path。新手阶段建议一个仓库对应一个项目逻辑清晰省得管理混乱。3.2 生成 SSH 密钥并配置到 Gitee现在到了本文几个“真香”节点之一配置 SSH 免密。如果不配置你每次git push到 Gitee 都要输入用户名和密码次数多了真的会烦。在 Git Bash 里执行ssh-keygen -t rsa -b 4096 -C 你的邮箱一路回车默认会在C:\Users\你的用户名\.ssh\目录下生成两个文件id_rsa是私钥相当于你的数字身份绝对不要发给任何人id_rsa.pub是公钥可以公开就是要放到 Gitee 上的那把锁。查看公钥内容cat ~/.ssh/id_rsa.pub复制输出的那串文本打开 Gitee → 个人头像 → 设置 → 安全设置 → SSH 公钥 → 添加公钥粘贴进去保存即可。标题可以随便填比如“我的Windows电脑”。这里顺便讲一下原理方便你以后排查问题。SSH 采用非对称加密你持有私钥服务器持有公钥。你发起连接时服务器用公钥加密一个随机挑战发回来你的私钥能解开证明“你确实是你”服务器就不需要密码了。这样密码不会在网络上传输也比 HTTPS 的账密缓存更安全。3.3 验证免密与多密钥多账号共存配置完公钥后执行ssh -T gitgitee.com如果第一次连接会提示是否确认连接输入yes回车。然后看到类似Hi 用户名! Youve successfully authenticated, but GITEE.COM does not provide shell access.的输出就表示 SSH 免密生效了。以后git clone gitgitee.com:用户名/仓库名.git的时候就不再需要输入账号密码。多账号的场景也值得提前知道。比如你可能同时要用公司的 Gitee 和个人 GitHub两个账号对应两套不同的密钥。可以在~/.ssh/目录下生成第二个密钥ssh-keygen -t rsa -b 4096 -C github邮箱 -f ~/.ssh/id_rsa_github然后在~/.ssh/目录下新建一个名为config的文件内容如下Host gitee.com HostName gitee.com User git IdentityFile ~/.ssh/id_rsa Host github.com HostName github.com User git IdentityFile ~/.ssh/id_rsa_githubSSH 会按 Host 自动选择对应的私钥这样两个平台的仓库都能免密访问互不干扰。这个文件我在实际团队里给每个新人都配置过十来分钟一次配置后面能少输几千次密码。4. 日常核心工作流克隆、提交、推送、分支合并4.1 克隆远程仓库以及 fatal: not a git repository把 Gitee 上的仓库拉到本地叫克隆。在 Git Bash 中执行git clone gitgitee.com:用户名/仓库名.git执行完后当前目录下会出现一个以仓库名命名的文件夹里面是完整的项目文件和.git本地仓库。有一个自带的小细节.clone 下载的是全部历史记录所以提交历史越长的仓库clone 时间越久这是正常的。很多新手在某个报错上卡很久fatal: not a git repository (or any of the parent directories): .git这个报错的字面意思是当前目录不是 Git 仓库而且父目录里也不是。原因通常就两个你在一个普通文件夹里直接执行了git commit、git log、git status这类依赖仓库的命令。解决办法很直接cd进入克隆出来的仓库目录或者如果真想让当前文件夹被管理先执行git init。你把.git文件夹误删了。这种情况仓库历史就丢了只能靠重新克隆或者恢复备份。组件提示一个安全习惯如果你的项目是通过 Web 部署的不要直接把.git目录放进静态站点的发布目录。.git里的信息包含完整历史一旦被访问到有泄露源码和敏感信息的风险。在部署发布时要确保把.git排除出去。4.2 日常提交推送add、commit、push 一条龙修改代码后要走的流程是“三件套”git add . git commit -m 提交说明 git pushgit add .把当前目录下所有改动加入暂存区。如果想只加某个文件用git add 文件名。更精确的做法是git add -p它可以逐个区块确认是否加入暂存区适合一次改了多个文件但只想提交其中一部分的场景。提交说明是很有讲究的。新手常见的问题是把说明写得毫无信息量比如update、fix、11.20。等你三个月后回来看git log完全想不起来当时改了什么。我建议至少遵循这个格式类型: 简述改动 比如 fix: 修复登录时验证码不刷新问题 feat: 新增导出 Excel 功能 refactor: 重构订单查询逻辑git log可以看提交历史git diff可以看当前未提交的具体改动。组合起来就是git diff先确认改了什么再决定提交。关于提交粒度我的经验是完成一个逻辑闭环就提交一次不要憋到晚上一次性把一天的所有改动提交成一个 commit。提交越频繁回退越精准也越能保护你的劳动成果。4.3 分支管理与合并merge 和 rebase 的区别分支是 Git 最强大的功能也是很多新手一开始觉得难的地方。你可以把分支理解成从主线上分出去的平行线在分支上改代码完全不影响主分支等测试没问题再合并回主分支。日常用法git branch feature/login # 新建分支 git switch feature/login # 切换到该分支git switch是 Git 2.23 之后推荐使用的命令更语义化。旧的git checkout也能切换分支但因为 checkout 同时承担了“切换分支”和“恢复文件”两个职责容易混淆新手建议直接用switch。合并分支有两种方式merge和rebase。merge 的流程是切回主分支执行git merge feature/login。它会把分支上的提交和主分支的提交合并成一个新的“合并提交”历史会形成分叉但保留了你“什么时候并入哪条支线”的真实记录。rebase 的流程是在 feature 分支上执行git rebase master。它的效果是把 feature 分支的提交摘下来在 master 最新节点上重新播放一遍最终历史是一条直线非常干净。但要注意rebase 会重写提交节点所以推送出去的公共分支不要随便 rebase否则会让其他协作者的本地记录和远程记录对不上那场面会很混乱。我个人的习惯是本地开发、功能分支上用 rebase 保持线性历史多人共享的分支上合并用 merge保留真实节点。合并时最容易遇到的状况是冲突。当两个分支改了同一个文件的同一行Git 无法自动决定用谁会在文件里插入标记 HEAD 主分支的代码 feature 分支的代码 feature/login看到这个不要慌。手动保留你要的内容删掉、、这些标记然后git add . git commit -m 解决冲突冲突解决完成后合并就成功了。新手解决冲突时最容易犯的错误是把别人分支的代码一并删了所以改的时候一定要先确认两边的代码各自是干嘛的再决定取舍。4.4 大文件别硬塞Git LFS 接入与卡住排查普通 Git 设计出来是为文本文件服务的它记录的是“这行是什么”。对二进制大文件比如图片、视频、打包产物Git 会把整个文件的历史都存起来仓库体积会迅速膨胀clone 和推送都会越来越慢。Git LFSLarge File Storage解决的是这个问题它不是把大文件存进仓库而是把大文件存到 LFS 存储空间里仓库里只存放一个指针文件。团队 clone 时默认只拉取轻量的指针真正需要大文件时才按需下载。使用流程git lfs install git lfs track *.zip git lfs track *.psdgit lfs track会在项目根目录生成或追加一个.gitattributes文件内容类似*.zip filterlfs difflfs mergelfs -text *.psd filterlfs difflfs mergelfs -text把这个文件也提交进仓库。之后git add、git commit、git push照常执行大文件会自动走 LFS 通道。这里有个实际踩过的坑。如果之前设置过lfs.fetchexclude按类型配置在 clone 时排除某些大文件后续访问这些文件时可能会一直卡住或缺失。解决办法是取消全局排除配置git config --global --unset lfs.fetchexclude然后回到仓库目录执行git lfs pull就可以补齐缺失的 LFS 文件。另外如果git lfs clone卡住优先检查网络、配置和这个排除项。普通 clone 大仓库时也可以手动加参数git clone后只拉指针再按需git lfs pull能显著加快克隆速度。5. IDEA 和 VS Code 联动把 Git 塞进日常编辑器5.1 IntelliJ IDEA 连接 Gitee 远程仓库IDEA 是 Java 和很多 JVM 系语言开发者的主力 IDE它对 Git 的集成很完善。第一次使用前需要在同一个目录设置 Git 可执行文件File → Settings → Version Control → Git在 Path to Git executable 里填C:\Program Files\Git\bin\git.exe。设置后点击 Test能弹出 Git 版本号就表示生效。从 Gitee 拉取项目到 IDEA 的常见方式File → New → Project from Version Control → 输入 Gitee 仓库地址SSH 那种点 Clone。IDEA 就会把整个仓库拉下来并自动识别项目结构。如果你已经有一个本地项目想直接关联到 Gitee 上的新仓库本地项目目录执行git init然后 IDEA 里右键项目 → Git → Add再设置远程地址git remote add origin gitgitee.com:用户名/仓库名.git git push -u origin master/main-u参数的意思是“记住当前分支上游”之后直接git push就能推不用再写分支名。这个-u我每次给新仓库配置时都会用因为能省很多事。IDEA 顶部右侧有提交、更新的按钮改完代码可以直接用图形界面 commit 和 push非常直观。有一点要注意IDEA 默认会用内置的 SSH 实现如果遇到 SSH 认证失败到 Settings → Version Control → Git 里把 SSH executable 改为 Native让它直接使用系统 SSH 密钥。5.2 VS Code 的 Git 集成与 GitLensVS Code 对 Git 的支持同样很好。左侧的“源代码管理”图标点开就能看到当前文件的改动列表。修改过的文件在编辑器里会用不同颜色标记行号红色是新加的行也就是没保存过的行这个色彩标记很直接。VS Code 里从 Gitee 拉取项目按CtrlShiftP打开命令面板输入Git: Clone粘贴仓库地址选一个本地目录VS Code 就完成克隆。提交和推送分别对应源代码管理面板顶部的对勾图标和“推送”按钮。我额外推荐一个插件GitLens。它能让你在任何一行代码上看到这行是谁、什么时候、用哪个提交写的提交说明是什么。做代码评审和排障时这是个“考古神器”。团队里新成员说“这代码谁写的看不懂”用 GitLens 一下就追溯到历史提交和当时的上下文能省很多口舌。5.3 命令行与图形界面怎么配合说实话图形界面的 Git 操作确实直观但我不建议完全依赖 GUI。原因有两个第一很多 GUI 把底层行为封装得太干净你点“同步”时到底是 pull 还是 fetch 还是 rebase界面不一定解释清楚。一旦出问题你很难知道自己刚才到底执行了什么操作。第二面试和工作交流里命令行描述更精准比如“我 rebase 之后强推了”比“我点了右上角那个按钮”专业得多。我的建议是掌握 10 个核心命令其他交给 GUI。这 10 个命令是clone、status、add、commit、push、pull、branch、switch、merge、log。日常操作用 GUI 加速遇到分支合并、历史回退、复杂冲突时回到命令行两者互补效率和理解都在线。6. 高频问题排查实录这些坑我都替你踩过了6.1 SSH 认证失败三步定位法Permission denied (publickey)是新手最容易撞上的报错。遇到这个问题按顺序排查第一步确认 Gitee 上是否添加了公钥。打开你本地的本地公钥cat ~/.ssh/id_rsa.pub放到 Gitee 后台的 SSH 公钥列表看是否完全一致。公钥是字符串复制粘贴时别手滑多了空格。第二步确认本地 SSH 是否启动了私钥。某些 Windows 环境 SSH 代理没自动加载执行ssh-add ~/.ssh/id_rsa如果没有输出Identity added先执行eval $(ssh-agent -s)再运行ssh-add。第三步看详细的调试日志命令加-vssh -T -v gitgitee.com输出里会显示它尝试了哪些密钥文件、服务器是否接受了认证。如果你的私钥不是默认名称或默认路径SSH 不会自动识别需要用 3.3 里写的~/.ssh/config来指定。顺便提一句SSH 认证失败时还要确认一个细节你的 Gitee 用户名是不是git。Gitee 的 SSH 访问地址固定是gitgitee.com:用户名/仓库名.git前面这个git是协议决定的不是你的 Gitee 账号昵称不能用自己用户名替换。6.2 提交信息写错怎么办git commit --amend 的用法写完提交发现说明有错字或者忘了一个文件这时git commit --amend就是救心丸。它可以把上一次提交“吃回去”重做。修改最近一次提交的信息git commit --amend -m 正确的提交说明上次提交忘了把某个已修改文件纳入git add 遗漏的文件 git commit --amend --no-edit--no-edit的意思是保持原有提交说明不变只补充文件改动。这里必须提醒一个使用红线amend只适用于本地还未推送到远程的提交。如果你的提交已经git push到团队共享的分支再去 amend本地历史就和远程不一致了后续拉取合并会产出一堆奇怪的分叉。如果已经推送且信息确实需要修改正规做法是再追加一个新提交写明类似“修正上一次提交的说明”或者和团队协商后谨慎处理。6.3 每次 push 都要账密彻底清除缓存凭据使用 HTTPS 方式https://gitee.com/用户名/仓库名.gitclone 仓库时Git 会把账号密码缓存到 Windows 凭据管理器里。平时免密很方便但切换账号或改密码后经常出现“不是我操作的却一直提交不了”的问题。排查和清理方法打开 Windows 控制面板 → 凭据管理器 → Windows 凭据找到git:https://gitee.com开头的条目删除。如果想关闭 Git 自己的凭据自动补全执行git config --global --unset credential.helper如果你是在没配 SSH 密钥的情况下刚刚开始接触 Gitee之前的操作路径是把密码悄悄补完了这一步清理后会恢复正常。我见过的多数“推送不上去”问题其实就是凭据管理器里存了一个旧账号的密码。清理后重新推送输入新账号密码即可。当然如果你已经切换到 SSH 方式这个麻烦根本不存在所以新仓库我还是优先建议直接上 SSH。6.4 新手高频报错速查表这里整理了一些我实际在群里反反复复看到的问题报错/现象常见原因解决办法fatal: not a git repository...目录未初始化或没进入仓库cd进入仓库目录或git initPermission denied (publickey)SSH 密钥未配置或未加载按 6.1 排查rejected - failed to push本地落后于远程先git pull再推送refusing to merge unrelated histories两个不相干的仓库历史强行合并git merge --allow-unrelated-histories文件名或中文内容乱码终端编码不统一git config --global core.quotepath false终端统一用 UTF-8HEAD is now at...或 detached HEAD检出了某条历史记录而非分支用git switch 分支名回到分支还有一个恢复“误操作”的技巧。如果你执行了git reset --hard把工作区改动弄没了不要立刻哭。Git 其实会在操作日志里保存所有 HEAD 的变动执行git reflog能看到每次 HEAD 的移动记录找到误操作之前的那条记录执行git reset --hard 对应编号就可以把本地状态还原回来。这也是 Git 比手动备份强大的另一个侧面只要你 commit 过绝大多数“删错了”“改坏了”都能找回来。最后分享一点我个人的经验。刚开始学 Git 时我也觉得命令又多又抽象甚至一度想退回 U 盘管理方案。撑过两周后习惯成了肌肉记忆现在每天打开电脑第一件事就是git status。你不需要把 Git 的所有高级技巧都学完只需要把克隆、提交、推送、分支合并这四个动作做熟练就已经比 90% 的“文件夹版本管理器”强了。如果你现在正踩在某个报错上按上面 6.4 的速查表试一遍大概率就能走出来。代码管理这件事越早告别手工作坊后面省下的时间就越多。
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

识别指针并把点替换成箭头的VSCode插件:用TaoToken统一Key跑通本地调试与发布 2026/10/2 10:34:47

识别指针并把点替换成箭头的VSCode插件:用TaoToken统一Key跑通本地调试与发布

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
XML DTD元素解析实战:DOCTYPE声明、内容模型与验证 2026/10/2 10:34:46

XML DTD元素解析实战:DOCTYPE声明、内容模型与验证

第一次在XML文件头部撞见<!DOCTYPE>声明时&#xff0c;我整个人是懵的。那时候我刚搞完一个简单的接口对接&#xff0c;对方传过来的XML长这样&#xff1a;<?xml version"1.0" encoding"UTF-8"?> <!DOCTYPE catalog SYSTEM "../dtd/…

阅读更多 →
水平集方法在激光打孔多物理场仿真中的应用与建模流程解析 2026/10/2 10:34:45

水平集方法在激光打孔多物理场仿真中的应用与建模流程解析

1. 先想清楚再动手&#xff1a;激光打孔的多物理场链条&#xff0c;水平集凭什么能搞定激光打孔看起来很简单——一束光打过去&#xff0c;材料上出现一个孔。真到做仿真的时候&#xff0c;你会发现根本不是那么回事。光打到材料表面&#xff0c;温度瞬间飙到几千K&#xff0c;…

阅读更多 →
WorkBuddy 深度实战:Skill 机制、models.json 配置与工作流编排 2026/10/2 10:34:39

WorkBuddy 深度实战:Skill 机制、models.json 配置与工作流编排

1. 先搞清楚 WorkBuddy 到底是个什么东西很多人第一次听到 WorkBuddy 这个名字&#xff0c;会下意识把它归类成"又一个套壳聊天工具"。我一开始也这么想&#xff0c;直到真正把它装到工作流里跑了两周&#xff0c;才发现它和普通对话式 AI 的定位完全不是一回事。Wor…

阅读更多 →
从碎片到统一:54种AI编程工具Agent技能管理中枢实战 2026/10/2 10:34:38

从碎片到统一:54种AI编程工具Agent技能管理中枢实战

我现在的开发环境里&#xff0c;光 AI 编程类工具就常驻了七八套&#xff1a;Cursor、Copilot、Codex、Claude Code、Cline 这些轮着用&#xff0c;项目一多就乱套。每套工具都有自己的 Agent 技能体系&#xff0c;Cursor 认.cursor/rules&#xff0c;Copilot 读自定义指令&…

阅读更多 →
Django+微信小程序返校疫情管理系统开发全解析 2026/10/2 10:34:37

Django+微信小程序返校疫情管理系统开发全解析

我前前后后帮人看过不少毕业设计项目&#xff0c; djangopython微信小程序的大学学生返校疫情管理系统 这个题目几乎年年有人选。原因也很简单&#xff1a;它是一个足够典型的全栈业务系统——后端要处理用户、打卡记录、返校申请、审批流这些实体关系&#xff0c;前端要搞定…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉