Python学习笔记·第29天:Git进阶——分支操作与合并冲突

一、什么是分支?

一句话:分支就是你的"平行宇宙"。在不影响主线的情况下,你可以在自己的分支上自由修改、开发新功能,改好了再合并回去。

生活比喻:你在写一篇文章,突然想尝试另一种写作风格,但又不想把原稿改乱。于是你复制一份副本,在副本上改。改好了再决定要不要替换原稿。这个副本就是"分支"。

二、分支核心命令

1. 查看本地分支

bash 复制代码
git branch  # 查看所有本地分支,前面带*的是当前所在的分支

2. 创建本地分支

bash 复制代码
git branch 分支名  # 创建一个新分支

3. 切换分支

bash 复制代码
git checkout 分支名           # 切换到指定分支
git checkout -b 分支名         # 创建并切换到新分支(最常用)

4. 合并分支

bash 复制代码
git merge 要合并的分支名       # 把指定分支的修改合并到当前分支

5. 删除分支

bash 复制代码
git branch -d 分支名   # 删除已合并的分支(安全检查)
git branch -D 分支名   # 强制删除(不管有没有合并)

三、合并冲突

什么时候会产生冲突? 两个分支修改了同一个文件的同一行,Git 不知道该保留哪个版本,就会产生冲突。

怎么解决?

  1. 打开冲突文件,找到冲突标记 <<<<<<<、=======、>>>>>>>
  2. 手动选择保留哪部分内容,删除冲突标记
  3. git add . → git commit -m "解决冲突"

四、实战演练

完整流程:创建dev分支 → 在dev上改代码 → 合并回master → 删除dev

bash 复制代码
# 第1步:创建并切换到dev01分支
git branch dev01      # 创建dev01分支
git checkout dev01    # 切换到dev01(也可以用git checkout -b dev01一步完成)

# 第2步:在dev01分支上修改文件
# ... 写代码 ...

# 第3步:提交修改
git add .
git commit -m 'add file02 on dev'

# 第4步:切回master分支
git checkout master

# 第5步:把dev01的修改合并到master
git merge dev01

# 第6步:删除dev01分支(已经合并了,不需要了)
git branch -d dev01

五、开发中分支使用原则

分支类型 作用 说明
master 生产分支 线上运行的代码,不能直接在上面改
develop 开发分支 从master创建,日常开发在这里
feature/xxxx 功能分支 从develop创建,开发新功能,完成后合并回develop
hotfix/xxxx 修复分支 从master创建,紧急修复线上Bug,完成后合并回master和develop

今日核心总结

  1. 分支 = 平行宇宙:在自己的分支上随便改,不影响主线
  2. 核心命令 :
    • git branch → 查看分支
    • git checkout -b 分支名 → 创建并切换分支(最常用)
    • git merge 分支名 → 合并分支
    • git branch -d 分支名 → 删除分支
  3. 合并冲突 :两个分支改了同一行 → 手动解决 → add → commit
  4. 分支原则 :master 放稳定代码,develop 放开发代码,新功能开 feature 分支
相关推荐
摇滚侠1 小时前
《Java并发编程之美》第 2 章 并发编程的其他基础知识 阅读笔记 3
android·java·笔记
空~自由1 小时前
Python 正则 . * ? .* .*? (.*?) 通俗讲解
开发语言·python
Web3&Basketball1 小时前
DeepSeek V4.1 Flash 实测:Token 砍半、Search API 跑通
数据库·人工智能·python·大模型·api调用·deepseek·推理优化
墨子夕2 小时前
设计模式——Java × Python 双语言精讲 · 23 个经典模式 + 现代演进(第一篇)
java·python·设计模式
Linux实战笔记2 小时前
凌晨 3 点接口超时,排查发现 asyncio 协程里混用了同步 requests 库
python·asyncio·aiohttp·事件循环阻塞·协程调试
weixin_BYSJ19872 小时前
【计算机毕设】房屋租赁系统02647
java·vue.js·spring boot·python·django·课程设计
优化Henry2 小时前
LTE小区光路降质告警排查与处理实录
运维·网络·学习·5g·tdd
暖馒2 小时前
运动控制框架相关知识
学习
在世修行2 小时前
智学文枢:数据归谁管、变了怎么通知
python·桌面应用·状态管理·signal·store·pyside
stereohomology2 小时前
我对DeepSeek4.1flash能力变化的感觉和第三方评估相当
人工智能·学习·llm