Git基础操作指南:简单易上手的版本控制入门
写这个单纯就是为了记录和分享一下我对Git的操作和理解尤其是我遇到的感觉很有用但是很少被周围同学用起来的小tips对于那些复杂和有意思的Git操作我也不太会哈哈哈哈哈哈哈一、Git是什么Git是一个分布式版本控制系统它不仅是代码的时光机更是团队协作的瑞士军刀。除了记录历史、支持回退和分支Git真正强大的地方在于其工作流设计和本地操作的原子性——所有操作几乎都在本地完成这让它快如闪电且离线可用。为了更直观地理解Git的工作流程下面用流程图展示Git的核心区域及其关系流程说明工作区Working Directory你实际编辑文件的地方暂存区Staging Area通过git add将修改暂存到这里准备提交本地仓库Local Repository通过git commit将暂存区内容永久保存到本地历史远程仓库Remote Repository通过git push将本地提交推送到远程服务器如GitHub/Gitee这个三区一库的设计是Git高效工作的核心理解它们的关系能帮你更好地掌握Git操作。二、Git安装与配置1. 安装GitWindows从 git-scm.com 下载安装包安装时注意勾选Git from the command line and also from 3rd-party software以将Git加入PATH。Macbrew install git需Homebrew或从官网下载pkg安装包。Linuxsudo apt install gitUbuntu/Debian或sudo yum install gitCentOS。2. 基础配置一次设置全局生效# 设置全局用户名和邮箱提交记录会显示gitconfig--globaluser.nameYour Namegitconfig--globaluser.emailyour.emailexample.com# 设置默认编辑器为VS Code避免陷入vimgitconfig--globalcore.editorcode --wait# 设置换行符自动转换Windows: true, Mac/Linux: inputgitconfig--globalcore.autocrlftrue# 查看所有配置gitconfig--list提示--global表示对当前用户所有仓库生效若要对单个仓库设置去掉--global并在仓库目录下执行。三、日常高频但易被忽略的Git操作这里主要集中于文件暂存管理提交和分支管理方面尤其是分支管理我发现这里面有很多我认为超级实用但是被很多人忽视的点。很多人可能会说不就是代码管理的仓库吗能提代码能看记录就行了。这种想法其实只看到了Git的冰山一角。Git真正的威力在于其精细化的版本控制能力和灵活的工作流支持。比如你能轻松地“穿越”到任意历史版本进行修复而不影响主线你能同时开展多个功能开发并随时无缝切换你能精确控制每次提交的内容甚至只提交一个文件里的某几行代码。这些“微操”才是提升开发效率、保证代码库整洁的关键。下面我就来分享那些日常高频但容易被忽略的“宝藏”操作。1. 暂存区Staging Area的灵活运用暂存区是Git独有的设计让你可以精细控制提交内容。# 只暂存某个文件的特定修改交互式添加gitadd-p文件名# 暂存所有已跟踪文件的修改不包括新文件gitadd-u# 暂存所有修改包括新文件gitadd.# 从暂存区移除某个文件但保留工作区修改gitreset 文件名场景你同时修改了a.py和b.py但只想提交a.py的修复这时用git add -p a.py可以交互式选择要暂存的代码块。场景2只想提交部分文件但工作区有其他修改有时你只想提交a.py但工作区还有b.py的修改未完成直接提交会包含所有修改。这时可以# 方法1暂存要提交的文件提交后再恢复其他修改gitadda.py# 只暂存a.pygitcommit-mfeat: 更新a.pygitstash push-mb.py的未完成修改# 保存b.py的修改到stash# 现在工作区干净了可以继续其他操作# 稍后恢复git stash pop# 方法2使用stash保存所有修改再恢复指定文件gitstash push-m所有未提交的修改gitstash pop--index0# 恢复最近一次stash但只恢复a.pygitadda.pygitcommit-mfeat: 更新a.py# 剩下的修改仍在stash中git stash pop 恢复# 方法3交互式添加最精细控制gitadd-pa.py# 交互式选择a.py中要提交的代码块gitcommit-mfeat: 部分更新a.py# b.py的修改保持在工作区不会被提交原理Git提交时只提交暂存区的内容。通过git add精确控制暂存区或使用git stash临时保存工作区修改都能实现只提交指定文件的需求。2. 提交Commit的艺术# 提交暂存区的所有修改gitcommit-mfeat: 添加用户登录功能# 跳过暂存区直接提交所有已跟踪文件的修改gitcommit-amfix: 修复登录bug# 修改上一次提交的消息未push时gitcommit--amend-m新的提交消息# 修改上一次提交的内容添加漏掉的文件gitadd漏掉的文件gitcommit--amend--no-edit规范推荐使用约定式提交如feat:、fix:、docs:、style:、refactor:、test:、chore:。3. 分支Branch的进阶操作分支是Git最强大的功能之一但很多人只停留在git branch和git checkout的基础使用。下面这些进阶技巧能极大提升你的工作效率# 查看所有分支包括远程gitbranch-a# 查看已合并到当前分支的分支gitbranch--merged# 查看未合并到当前分支的分支gitbranch --no-merged# 创建分支并立即切换gitcheckout-bfeature/新功能# 或Git 2.23gitswitch-cfeature/新功能# 重命名当前分支gitbranch-m新分支名# 删除已合并的分支gitbranch-d分支名# 强制删除未合并的分支gitbranch-D分支名# 查看分支的最后一次提交gitbranch-v# 进阶技巧1基于特定提交创建分支gitcheckout-b新分支名 提交哈希值# 进阶技巧2查看分支与上游分支的差异gitlog--oneline--graph--decorate分支名..上游分支名# 进阶技巧3设置上游分支关联远程分支gitbranch --set-upstream-toorigin/远程分支名 本地分支名# 进阶技巧4查看分支创建时间gitreflog show--dateiso 分支名# 进阶技巧5快速切换到上一个分支gitcheckout -# 进阶技巧6删除远程已合并的分支本地和远程都清理gitpush origin--delete分支名# 删除远程分支gitbranch-d分支名# 删除本地分支# 进阶技巧7批量删除匹配特定模式的分支gitbranch|grepfeature/|xargsgitbranch-d# 进阶技巧8查看分支的合并状态图gitlog--oneline--graph--all--decorate实用场景解析基于旧提交创建修复分支当发现某个历史版本有bug时可以基于该提交创建分支进行修复gitlog--oneline# 查看提交历史gitcheckout-bhotfix/issue-123 abc1234# 基于提交abc1234创建修复分支清理已合并的feature分支项目开发中会产生大量临时分支定期清理保持整洁# 查看已合并到main的分支gitbranch--mergedmain|grep-vmain# 批量删除谨慎操作先确认列表gitbranch--mergedmain|grep-vmain|xargsgitbranch-d# 删除远程已合并分支gitfetch--prune# 先更新远程分支信息gitbranch-r--mergedmain|grep-vmain|seds/origin\///|xargs-I{}gitpush origin--delete{}快速切换上下文使用git checkout -可以在两个分支间快速切换特别适合同时处理多个任务。可视化分支关系git log --oneline --graph --all --decorate能清晰展示所有分支的合并关系帮助理解项目历史。分支命名规范建议feature/新功能开发bugfix/或hotfix/bug修复release/发布分支docs/文档更新refactor/代码重构掌握这些分支操作技巧能让你在团队协作中游刃有余保持代码库的整洁和高效。四、分支合并与冲突解决1. 合并策略# 普通合并保留分支历史gitmerge 分支名# 变基合并使历史线性整洁gitrebase 分支名# 合并时禁用快进模式总是创建合并提交gitmerge --no-ff 分支名2. 解决冲突的流程合并时出现冲突Auto-merging 文件.txt CONFLICT (content): Merge conflict in 文件.txt Automatic merge failed; fix conflicts and then commit the result.查看冲突文件gitstatus手动编辑文件解决冲突文件中的、、标记冲突部分标记冲突已解决gitadd文件.txt完成合并gitcommit-mmerge: 合并分支解决冲突3. 撤销合并# 合并后但未push想撤销gitmerge--abort# 合并过程中gitreset--hardHEAD~1# 已提交合并回退到合并前五、遇到问题怎么办1. 撤销修改还没add# 撤销单个文件的修改gitcheckout -- 文件名# 撤销所有修改gitcheckout --.2. 撤销add已经add但还没commit# 从暂存区移除但保留文件修改gitreset 文件名3. 查看差异# 查看工作区和暂存区的差异gitdiff# 查看暂存区和仓库的差异gitdiff--staged六、实用小技巧1. 别名设置让命令更短# 设置别名gitconfig--globalalias.st statusgitconfig--globalalias.co checkoutgitconfig--globalalias.br branchgitconfig--globalalias.ci commit# 使用git st 代替 git status2. 忽略文件创建.gitignore文件里面写不需要Git管理的文件# 忽略所有.log文件 *.log # 忽略node_modules文件夹 node_modules/ # 忽略系统文件 .DS_Store3. 查看某次提交的修改# 查看最近一次提交的修改gitshow# 查看某次提交的修改gitshow 提交id七、总结Git学习就像学骑自行车先学会基本操作init、add、commit、push每天用形成肌肉记忆遇到问题查一下慢慢积累经验记住Git是一个很好玩的精细化工具有很多微操可以方便我们的代码提交和管理过程一个人也几乎不可能知道Git的所有操作所以个人感觉需要多交流说不定哪次交流就跳出来一个你不知道但是极其好用的东西。

相关新闻

【Spring框架学习(三)】:Spring Bean生命周期源码解析

【Spring框架学习(三)】:Spring Bean生命周期源码解析

Spring框架学习系列:《Spring框架学习(一):从设计思想到核心架构全面认识Spring》《Spring框架学习(二):IOC核心原理解析,为什么Autowired可以自动注入?》《Spring框架学…

2026/8/17 21:21:28 阅读更多 →
抖音批量下载终极指南:5分钟学会用 douyin-downloader 免费去水印保存视频

抖音批量下载终极指南:5分钟学会用 douyin-downloader 免费去水印保存视频

抖音批量下载终极指南:5分钟学会用 douyin-downloader 免费去水印保存视频 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and bro…

2026/8/17 21:21:27 阅读更多 →
手把手教你学 Simulink—— 高精度数控机床电主轴电机的失磁故障穿越控制仿真

手把手教你学 Simulink—— 高精度数控机床电主轴电机的失磁故障穿越控制仿真

目录 手把手教你学 Simulink —— 高精度数控机床电主轴电机的失磁故障穿越控制仿真 一、为什么“电主轴失磁”在高档数控里特别致命? 1.1 电主轴工况特征

2026/8/18 23:49:35 阅读更多 →

最新新闻

构建智能体专用查询引擎:从意图理解到执行优化的实战指南

构建智能体专用查询引擎:从意图理解到执行优化的实战指南

1. 项目概述:为智能体构建一个专属的“搜索引擎” 最近在折腾各种AI智能体(Agents)项目,无论是基于LLM的自主智能体,还是多智能体协作框架,我发现一个共通的痛点越来越明显: 智能体“知道”的很…

2026/8/18 23:49:24 阅读更多 →
9款AI写论文哪个好?2026实测:只有它能做到“真文献+真图表”,毕业季不踩雷

9款AI写论文哪个好?2026实测:只有它能做到“真文献+真图表”,毕业季不踩雷

aigcbiye官网:http://www.aigcbiye.com | 微信公众号 搜一搜 aigcbiye 你打开一篇AI生成的论文初稿,第一章读下来逻辑通顺、辞藻华丽,翻到参考文献列表却傻了眼——作者名字是虚构的,期刊名查无此刊,DOI点…

2026/8/18 23:49:24 阅读更多 →
Spark Streaming 核心原理与应用实践:从微批处理到实时计算

Spark Streaming 核心原理与应用实践:从微批处理到实时计算

1. 项目概述:从批处理到实时计算的跨越 在数据处理的江湖里,Spark 的批处理能力早已名声在外,但面对源源不断、实时涌入的数据流,传统的批处理模式就显得有些力不从心了。想象一下,你是一家电商平台的运维,…

2026/8/18 23:49:24 阅读更多 →
单片机毕业设计-基于 STM32/51 单片机的可校准便携式计价电子秤开发 基于 STM32/51 单片机的多档位单价切换称重设备设计(021103)

单片机毕业设计-基于 STM32/51 单片机的可校准便携式计价电子秤开发 基于 STM32/51 单片机的多档位单价切换称重设备设计(021103)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于嵌入式单片机,Java、小程序技术领域和毕业项目实战 ✌️…

2026/8/18 23:49:24 阅读更多 →
单片机毕业设计-基于单片机的三通道红外传感器循迹小车硬件控制系统设计 基于 STM32 或 51 单片机的可充电式自主循迹智能小车开发(022203)

单片机毕业设计-基于单片机的三通道红外传感器循迹小车硬件控制系统设计 基于 STM32 或 51 单片机的可充电式自主循迹智能小车开发(022203)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于嵌入式单片机,Java、小程序技术领域和毕业项目实战 ✌️…

2026/8/18 23:49:23 阅读更多 →
指令微调如何影响大语言模型的置信度与词汇多样性?

指令微调如何影响大语言模型的置信度与词汇多样性?

在自然语言处理领域,大语言模型(LLM)的指令微调(Instruction Tuning)已成为提升模型与人类意图对齐能力的关键技术。然而,在追求模型“听话”的同时,我们是否无意中改变了模型回答问题的内在特质…

2026/8/18 23:48:23 阅读更多 →

日新闻

告别逐帧截图:用 extract-video-ppt 快速提取视频中的 PPT 并一键导出 PDF

告别逐帧截图:用 extract-video-ppt 快速提取视频中的 PPT 并一键导出 PDF

告别逐帧截图:用 extract-video-ppt 快速提取视频中的 PPT 并一键导出 PDF 【免费下载链接】extract-video-ppt extract the ppt in the video 项目地址: https://gitcode.com/gh_mirrors/ex/extract-video-ppt 如果你还停留在"看网课 不停暂停 截图 …

2026/8/18 0:00:57 阅读更多 →
思源宋体TTF一站式上手:7个字重免费商用,从下载到上线的完整走查

思源宋体TTF一站式上手:7个字重免费商用,从下载到上线的完整走查

思源宋体TTF一站式上手:7个字重免费商用,从下载到上线的完整走查 【免费下载链接】source-han-serif-ttf Source Han Serif TTF 项目地址: https://gitcode.com/gh_mirrors/so/source-han-serif-ttf 你是不是也经历过这种时刻:设计稿里…

2026/8/18 0:00:58 阅读更多 →
华硕笔记本控制权回收指南:GHelper 如何用一个 10MB 文件替代 Armoury Crate

华硕笔记本控制权回收指南:GHelper 如何用一个 10MB 文件替代 Armoury Crate

华硕笔记本控制权回收指南:GHelper 如何用一个 10MB 文件替代 Armoury Crate 【免费下载链接】g-helper Lightweight Armoury Crate alternative for Asus laptops with nearly the same functionality. Works with ROG Zephyrus, Flow, TUF, Strix, Scar, ProArt, …

2026/8/18 0:00:59 阅读更多 →

周新闻

基于阿里云与通义千问(Qwen)构建AI应用:从模型调用到生产部署的完整实践指南

基于阿里云与通义千问(Qwen)构建AI应用:从模型调用到生产部署的完整实践指南

如果你是一名开发者,最近可能已经感受到了AI大模型正在从“玩具”变成“生产力工具”的强烈信号。从代码补全到智能Agent,从本地部署到云端API,我们正处在一个技术栈快速重构的节点。然而,面对层出不穷的模型、框架和工具&#xf…

2026/8/18 9:15:35 阅读更多 →
工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

第四篇:反射——高频能量撞墙之后会发生什么? —— 你以为信号已经过去了,其实它正在回来打你 老Q的现场笔记 第五季,我们正式进入工业神经系统层。这里不再是单个设备的战斗,而是整个工厂“经脉”层面的秩序之战。从这一篇开始,你将第一次看清:看似简单的信号传播,背…

2026/8/18 9:06:28 阅读更多 →
【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室👇 关注我领取海量matlab电子书和…

2026/8/18 9:04:56 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/17 18:54:37 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/17 18:55:16 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/17 18:55:55 阅读更多 →