(六)用分支安排独立修改
1. 从当前提交开始一项功能
现在主分支已经保存了 README 修正。准备增加“总阅读时长”,先建立功能分支:
# 从当前 main 指向的提交开始新分支,并切换过去。
git switch -c feat/summary
git branch --show-current
git status
在 reading.py 中加入下面的函数,放在入口判断之前:
# 修改片段:加入 reading.py,与 count_met 并列;计算不改变传入列表。
def total_minutes(minutes: list[int]) -> int:
return sum(minutes)在 check_reading.py 的导入区增加导入,把新检查放在最后的成功输出之前:
# 修改片段:加入 check_reading.py,保留前面已有的三个达标检查。
from reading import total_minutes
assert total_minutes([20, 35, 45]) == 100# 一次功能提交同时保存实现和对应检查。
python check_reading.py
git add -- reading.py check_reading.py
git commit -m "增加总阅读时长统计和检查"
git switch main
把功能提交记为 C。切回 main 后,reading.py 回到 main 对应的版本,其中还没有 total_minutes。Git 更新的是工作目录中的同一组路径,编辑器看到的文件也会随之变化。
分支是指向提交的引用,不是复制一套目录。HEAD 通常指向当前分支;在功能分支提交时,feat/summary 前进到 C,main 仍停在 B。只切换分支不会把 C 合入 main。
2. 切换前先看尚未提交的内容
尚未提交的编辑属于当前工作目录,不会因为点击另一个分支名就自动保存成该分支的历史。Git 能带过去的修改可能随切换保留;将被覆盖的修改则会让切换停止。先看 git status,完成当前提交,或者使用后面介绍的 stash 临时保存,再切换。
# -v 显示提交概况,-a 同时列出本地与远程跟踪分支。
git branch -v
git branch -a