零基础入门Python11|Git实战:为任务管理器建立版本历史
零基础入门Python11Git实战为任务管理器建立版本历史本篇图解程序执行顺序这张图对应代码的执行顺序。先说清输入、处理和输出再解释语法细节初学时不容易迷路。一、上一篇课后练习讲解任务优先级适合定义为字符串排序时再映射成数字fromdataclassesimportdataclassfromdatetimeimportdatedataclassclassTask:id:inttitle:strpriority:strmediumdue_date:str|NoneNonedone:boolFalse排序规则PRIORITY_ORDER{high:0,medium:1,low:2}defsorted_tasks(tasks):returnsorted(tasks,keylambdatask:(task.done,PRIORITY_ORDER.get(task.priority,99),task.id,),)Python依次比较元组中的值。False排在True前面因此未完成任务优先同一完成状态下再按优先级和编号排序。未知优先级映射为99排在最后。可执行验收答案把代码保存为priority_check.py后直接运行fromdataclassesimportdataclassdataclassclassTask:id:inttitle:strpriority:strmediumdone:boolFalseORDER{high:0,medium:1,low:2}defsorted_tasks(tasks:list[Task])-list[Task]:returnsorted(tasks,keylambdat:(t.done,ORDER.get(t.priority,99),t.id))tasks[Task(3,写文档,low),Task(1,修复登录,high),Task(2,运行测试,medium,True)]assert[task.idfortaskinsorted_tasks(tasks)][1,3,2]assert[task.idfortaskintasks][3,1,2]print([(task.id,task.priority,task.done)fortaskinsorted_tasks(tasks)])预期输出未完成的 high、low 依次在前已完成任务最后原列表顺序仍是 3、1、2。若priority为未知字符串ORDER.get(..., 99)会将它放到最后并保留任务不会让排序抛KeyError。二、本篇成果为任务管理器建立Git仓库完成初始化、忽略文件、三次有意义的提交、功能分支、差异查看和故障恢复。Git不是网盘而是能够解释“谁在什么时候为什么修改了什么”的版本历史。三、仓库、工作区、暂存区和提交工作区正在编辑的文件暂存区准备进入下一次提交的改动提交带说明的项目快照仓库保存全部提交和分支。进入任务管理器根目录git init git status初始化不会自动提交文件。先创建.gitignore.venv/ __pycache__/ *.pyc .pytest_cache/ tasks.json .env虚拟环境、缓存、用户数据和密钥不能提交。源码和依赖清单应提交。四、完成第一次提交git add.gitignore task_manager main.py tests git status git commit-mfeat: add command line task manageradd只放入暂存区commit才形成历史。提交信息使用“类型: 具体变化”不要只写“修改”“完成”。查看历史git log--oneline--decorate五、用小提交记录开发过程增加优先级模型后gitdiffgit add task_manager/models.py task_manager/service.py git commit-mfeat: support task priority增加对应测试后git add tests git commit-mtest: cover task priority ordering代码与测试分开提交并非强制但每次提交应聚焦一个能够说明的变化。六、分支隔离新功能gitswitch-c feature/due-date git branch在分支上实现截止日期然后提交git add.git commit-mfeat: add task due date回到主分支并合并gitswitchmain git merge feature/due-date如果初始分支名是master可先执行git branch-M main七、恢复错误改动只修改了文件但尚未暂存可查看差异gitdiff如果确定不要这次改动使用git restore task_manager/models.py已经暂存但未提交git restore--staged task_manager/models.py不要随意使用会丢失所有改动的强制重置命令。恢复前先用status和diff确认范围。查看某次提交内容git show HEAD git show HEAD~1八、真实开发流程每完成一个小功能git status确认改动文件git diff逐行检查运行pytestgit add只加入相关文件git commit写清变化git log确认历史。Git不会替代测试。它只能保存“当时的代码”不能证明代码正确。九、本篇验收在新目录复制任务管理器源码执行git init git branch-M main git add.git commit-mfeat: initialize task managergitswitch-c feature/priority git status验收要求.venv、tasks.json和.env不出现在提交中主分支至少有一次提交feature/priority分支能够独立修改git diff能看到未提交变化pytest通过后才能提交。十、课后练习在feature/priority分支修改任务优先级并提交故意修改一行标题但不提交使用git diff观察再用git restore恢复。最后把该分支合并到main并画出“工作区→暂存区→提交”的数据流。实战补充提交前检查清单每次 Git 提交前执行 status、diff 和测试。提交应描述一个可运行增量例如 feat: persist tasks而不是把密钥、虚拟环境和临时数据库一起提交。git status--short gitdiff--check python-m pytest-q git add app tests git commit-mfeat: add task persistence验收从干净目录 clone 后按照 README 创建环境并通过测试故意制造一个错误提交再用 git revert 恢复。课后练习给任务项目建立 feature 分支和发布 tag。本篇结束完整模块文件本节不是代码片段而是本篇结束时该模块的完整版本。请先备份旧文件再整体替换替换后重新运行本篇命令和测试。阅读时重点看本篇新增的函数、事务边界和错误处理未涉及的代码先不要自行删减。本篇完整示例git init git add . git commit -m feat: initialize project git switch -c feature/login git status

相关新闻

Ice 菜单栏管理上手指南:一键隐藏图标与美化

Ice 菜单栏管理上手指南:一键隐藏图标与美化

Ice 菜单栏管理上手指南:一键隐藏图标与美化 【免费下载链接】Ice Powerful menu bar manager for macOS 项目地址: https://gitcode.com/GitHub_Trending/ice/Ice 当你连屏幕右上角都堆满图标时 如果你的 Mac 屏幕右上角住着一排"钉子户"——几十…

2026/8/20 12:36:06 阅读更多 →
✨ 工资条生成器:一键生成,专业美观

✨ 工资条生成器:一键生成,专业美观

这是一款专为财务人员与 HR 打造的轻量化财务辅助工具,旨在彻底解决传统 Excel 制作工资条时繁琐的合并、排版与打印痛点。支持 Excel 工资表一键生成专业工资条,操作简单,效率倍增。 使用方法 配置表头:按照工资条格式配置好表格…

2026/8/20 12:36:06 阅读更多 →
Windows 掌机入门工具箱:HandheldCompanion 体感控制与性能调校从零到玩爽

Windows 掌机入门工具箱:HandheldCompanion 体感控制与性能调校从零到玩爽

Windows 掌机入门工具箱:HandheldCompanion 体感控制与性能调校从零到玩爽 【免费下载链接】HandheldCompanion A touch optimized GUI to increase your handheld gaming computer experience. 项目地址: https://gitcode.com/gh_mirrors/ha/HandheldCompanion …

2026/8/20 12:36:06 阅读更多 →

最新新闻

鼠标、键盘、触摸常用事件汇总

鼠标、键盘、触摸常用事件汇总

1. 鼠标事件 click、mousedown、mousemove、mouseup、mouseover、mouseout 2. 键盘事件 keydown、keypress、keyup 3. 移动端触摸事件 touchstart、touchmove、touchend、touchcancel

2026/8/20 13:11:40 阅读更多 →
华为OD面试JAVA字符串转义技术解析与优化

华为OD面试JAVA字符串转义技术解析与优化

1. 华为OD技术面试JAVA真题深度解析 最近在技术社区看到不少朋友在讨论华为OD的JAVA开发岗位面试真题,作为经历过多次大厂技术面试的老兵,我决定把这道题的完整解题思路和背后的技术原理拆解清楚。这道题看似简单,但实际考察了JAVA基础、算法…

2026/8/20 13:11:40 阅读更多 →
本地存储:cookie /localStorage/sessionStorage 对比

本地存储:cookie /localStorage/sessionStorage 对比

特性CookielocalStoragesessionStorage生命周期可设置过期永久页面关闭销毁容量4KB5MB5MB跟随请求是否否跨标签支持支持不支持

2026/8/20 13:11:40 阅读更多 →
免费Illustrator自动化脚本合集:批量操作帮你省一半设计时间

免费Illustrator自动化脚本合集:批量操作帮你省一半设计时间

免费Illustrator自动化脚本合集:批量操作帮你省一半设计时间 【免费下载链接】illustrator-scripts Adobe Illustrator scripts 项目地址: https://gitcode.com/gh_mirrors/il/illustrator-scripts 周一早上九点,你刚打开Adobe Illustrator&#…

2026/8/20 13:11:40 阅读更多 →
跨域问题详解:原因 + 9 种跨域解决方案

跨域问题详解:原因 + 9 种跨域解决方案

1. 跨域原因浏览器同源策略,协议、域名、端口任一不同即跨域2. 九种解决方案CORS、JSONP、代理服务器、Nginx 反向代理、node 中间件、postMessage、WebSocket、window.name、iframe 跨域对比各自优缺点、适用场景、面试高频考点

2026/8/20 13:11:40 阅读更多 →
基于Spring Boot与Vue 3的田径训练管理全栈系统开发实战

基于Spring Boot与Vue 3的田径训练管理全栈系统开发实战

最近在开发一个面向田径教练和运动员的训练管理工具时,深刻体会到从需求梳理到技术落地的复杂性。市面上通用的项目管理软件难以满足田径训练中诸如周期计划、技术动作分析、实时数据反馈等专业需求,而定制开发又常因技术选型不当或架构设计缺陷导致项目…

2026/8/20 13:10:40 阅读更多 →

日新闻

Framework笔记本BIOS更新变砖,“可维修”承诺遭遇芯片级维修考验!

Framework笔记本BIOS更新变砖,“可维修”承诺遭遇芯片级维修考验!

Framework笔记本BIOS更新引“变砖”危机2026年7月7日,Framework向用户quantum5发送邮件,建议其安装BIOS 3.20更新。然而,更新后电脑出现严重问题,屏幕显示三角形和随机像素图案,风扇狂转,系统完全挂起。qua…

2026/8/20 0:00:46 阅读更多 →
2026还在担忧建站平台哪家好?手把手带你搭建自家网站!

2026还在担忧建站平台哪家好?手把手带你搭建自家网站!

2026还在担忧建站平台哪家好?手把手带你搭建自家网站!据艾瑞咨询发布的《2026年中国企业数字化服务市场研究报告》,2025年国内网站建设市场规模已达896亿元,同比增长18.7%。中国互联网络信息中心数据显示,截至2025年底…

2026/8/20 0:00:46 阅读更多 →
2026高端网站建设公司哪家好?怎么选才能不花冤枉钱?

2026高端网站建设公司哪家好?怎么选才能不花冤枉钱?

2026高端网站建设公司哪家好?怎么选才能不花冤枉钱?据艾瑞咨询《2026年中国企业数字化服务市场研究报告》,2025年国内网站建设市场规模已达896亿元,其中高端定制网站服务占比突破42%。更值得关注的是,91%的规模以上企业…

2026/8/20 0:00:46 阅读更多 →

周新闻

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

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

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

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

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

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

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

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

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

2026/8/19 11:55:16 阅读更多 →

月新闻

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

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

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

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

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

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

2026/8/19 7:42:22 阅读更多 →
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/19 11:55:13 阅读更多 →