见上文......
目录
[2)创建 feature 分支并修改代码](#2)创建 feature 分支并修改代码)
[4)提交feature 分支的修改](#4)提交feature 分支的修改)
[7)提交 main 分支的修改](#7)提交 main 分支的修改)
[8)合并分支, 触发冲突](#8)合并分支, 触发冲突)
[10)查看冲突后的 Python 文件](#10)查看冲突后的 Python 文件)
[12)在github网站上Pull & Request 可视化操作更建议方便。](#12)在github网站上Pull & Request 可视化操作更建议方便。)
三、Git分支与版本控制(共5点,后3点)
1.分支管理基础
2.合并分支解决冲突
3.提交
1)提交代码到main分支
# 1. 添加文件到暂存区
git add calculator.py
# 2. 提交代码(第一次提交)
git commit -m "初始化:添加加法函数"
2)创建 feature 分支并修改代码
git checkout -b feature-add-tax
3)修改caculator.py
# calculator.py - feature 分支版本
def add(a, b):
"""计算两个数的和(含10%税费)"""
result = (a + b) * 1.1 # 核心修改:加了税费计算
return result
# 测试代码
if __name__ == "__main__":
print("计算结果(含税费):", add(10, 20))
4)提交feature 分支的修改
git add calculator.py
git commit -m "feature分支:加法函数增加税费计算"
5)切换回main分支,
git checkout/switch main
6)修改calculator.py
#同样修改 add 函数的核心计算行(和 feature 分支改了同一行):
# calculator.py - main 分支版本
def add(a, b):
"""计算两个数的和(四舍五入)"""
result = round(a + b, 2) # 核心修改:四舍五入,和 feature 分支冲突
return result
# 测试代码
if __name__ == "__main__":
print("计算结果(四舍五入):", add(10, 20))
7)提交 main 分支的修改
git add calculator.py
git commit -m "main分支:加法函数增加四舍五入"
8)合并分支, 触发冲突
#现在尝试把 feature 分支合并到 main 分支,因为两个分支修改了 calculator.py 的同一行(result #= ...),会直接触发冲突:
git merge feature-add-tax
9)冲突提示
# 看到类似这样的提示,说明冲突触发
Auto-merging calculator.py
CONFLICT (content): Merge conflict in calculator.py
Automatic merge failed; fix conflicts and then commit the result.
10)查看冲突后的 Python 文件
#打开 calculator.py,会看到 Git 插入的冲突标记,核心冲突部分如下:
<<<<<<< HEAD
# calculator.py - main 分支版本
def add(a, b):
"""计算两个数的和(四舍五入)"""
result = round(a + b, 2) # 核心修改:四舍五入,和 feature 分支冲突
=======
# calculator.py - feature 分支版本
def add(a, b):
"""计算两个数的和(含10%税费)"""
result = (a + b) * 1.1 # 核心修改:加了税费计算
>>>>>>> feature-add-tax
return result
# 测试代码
if __name__ == "__main__":
<<<<<<< HEAD
print("计算结果(四舍五入):", add(10, 20))
=======
print("计算结果(含税费):", add(10, 20))
>>>>>>> feature-add-tax
11)手动解决冲突
#解决思路(融合需求:既加税费,又四舍五入)
#修改冲突文件,删除标记,合并逻辑:
# calculator.py - 解决冲突后的版本
def add(a, b):
"""计算两个数的和(含10%税费+四舍五入)"""
result = round((a + b) * 1.1, 2) # 融合两个分支的逻辑
return result
# 测试代码
if __name__ == "__main__":
print("计算结果(含税费+四舍五入):", add(10, 20)) # 预期输出:33.0
12)在github网站上Pull & Request 可视化操作更建议方便。
需要现在本地进行先执行merge一下。
# 确保在main分支
git switch main
# 合并
git merge feature-add-tax
然后可以看见github上有pr,然后创建一个pr请求,手动解决冲突然后合并分支删除分支,在本地执行回到原先状态
git merge --abort
# 然后将github上的代码pull下来同步
git pull
4.分支删除
1)本地分支删除
查看本地分支
git branch
删除已合并分支
# 删除单个分支(-d 是 --delete,只删已合并的分支)
git branch -d feature-login
# 强制删除未合并的分支(谨慎!-D 是 --delete --force,会丢失代码)
git branch -D feature-unfinished
批量删除本地已合并的分支
# 先切到 main 分支,再删除所有已合并到 main 的本地分支
git checkout main
git branch --merged main | grep -v "main" | xargs git branch -d
git branch --merged main:列出所有已合并到 main 的分支;
grep -v "main":排除 main 分支本身;
xargs git branch -d:批量删除这些分支。
2)远程分支删除
-
终端删除远程分支
删除远程的 feature-login 分支(origin 是远程仓库别名)
git push origin --delete feature-login
-
GitHub 网页删除远程分支
打开仓库页面 → 点击顶部「Code」→ 右侧「Branches」;
找到要删除的分支 → 点击右侧「⋯」→ 选择「Delete branch」;
确认删除即可(如果分支被保护,会提示无法删除)。
3)误删分支的恢复方法
如果不小心删了分支,只要该分支有提交记录 / 远程备份,就能恢复:
-
恢复本地已删除的分支
第一步:找到删除分支的最后一次提交记录(用 reflog 查看操作历史)
git reflog
第二步:从提交记录恢复分支(替换成你的提交哈希值,比如 abc123)
git checkout -b feature-login abc123
-
恢复远程已删除的分支
先在本地恢复分支
#重新推送到远程即可:
git push origin feature-login。
5.提交规范与最佳实践
1)提交信息格式规范
- 主题行限制50字符
- 使用祈使句("Fix"而非"Fixed")
- 提交类型标识(feat:功能,fix:修复,docs:文档等)

2)提交信息模板配置
- 在仓库创建时勾选"Add a README file"
- 使用
.github/COMMIT_TEMPLATE.md文件设置模板
3)提交历史的管理与重写
-
重做最近一次提交,刚提交完,发现提交信息写错(比如类型填错、主题超长); 漏加文件(比如忘了 git add 某个文件)。
git commit --amend
-
重置最近一次提交,撤销最近一次提交,但保留工作区 / 暂存区的代码(代码不会丢);适合:提交后发现代码有问题,想修改后重新提交。
git reset --soft HEAD^
-
不同reset对比

4)实践任务
- 在"my-first-repo"仓库中创建一个功能分支
- 在该分支上添加一个功能文件并提交
- 尝试合并到主分支并制造一个冲突
- 解决冲突并再次合并
- 使用规范的提交信息格式进行一次提交