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. 合并冲突 :两个分支改了同一行 → 手动解决 → addcommit
  4. 分支原则master 放稳定代码,develop 放开发代码,新功能开 feature 分支
相关推荐
dadaobusi13 分钟前
学习:RV lkvm SBI
java·学习·spring
传奇开心果编程2 小时前
【Xilem 0.4 基础语法学与练】第一课:从零到计数器
学习·rust·前端框架
广州山泉婚姻2 小时前
Python序列号源码分析
python
计算机源码社2 小时前
【大数据项目实战】基于大数据的影视内容生态综合质量分析与可视化-基于数据挖掘的影视内容类型共现与口碑聚类分析系统
大数据·人工智能·python·数据挖掘·数据分析·毕业设计·课程设计
C^h3 小时前
pytorch 适合初学者 0基础学习
人工智能·pytorch·python
David猪大卫3 小时前
【C++修炼】智能指针使用及原理
开发语言·c++·经验分享·笔记·学习·考研·面试
小柯南敲键盘3 小时前
跨马翻译:AI批量图片翻译工具,跨境电商视频字幕翻译与智能抠图一体搞定
人工智能·python·音视频
z23456d3 小时前
第四十一天学习心得
学习
2601_962297253 小时前
Python里behave和pytest-bdd哪个更适合中大型项目?为什么?
python·bdd·行为驱动开发·behave·pytest-bdd
sunflower#4 小时前
Go学习第五阶段:接口、泛型与包设计,实现可替换的通讯录存储层
学习·oracle·golang