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 分支
相关推荐
Linux-lucky4 小时前
21-Linux学习之旅之HTTPS和安全加固
linux·运维·学习·ubuntu·https
CTA量化套保4 小时前
近期零基础量化学习:先分阶段,再用 AI 检查缺口
人工智能·python
wp123_14 小时前
硬件元器件笔记|IPX8 防水 Type‑C 母座安费诺 124018802112A 与 TONEVEE TY48086‑24A 分析
c语言·开发语言·笔记
清水白石0085 小时前
Python 死锁排查全攻略:从线程卡死到锁依赖定位与工程化修复
linux·网络·python
Elias不吃糖5 小时前
Langfuse 入门:Trace、Prompt、Dataset、Experiment、Evaluator
前端·python·prompt·langfuse
mifengxing5 小时前
操作系统 文件系统
笔记·操作系统·计算机408
TechWayfarer5 小时前
批量查IP归属地,在线API、脚本、离线库怎么选?三种方案实测对比
网络·python·网络协议·tcp/ip
学运维的Kysan6 小时前
暑假运维学习打卡第二十六天8.17
学习
无聊的菜鸟6 小时前
TMS320F2806X学习笔记(零)—— C2000、CCS、新建工程
笔记·mcu·c2000·f2806x
七牛开发者7 小时前
为什么 Go 很适合 AI 辅助开发?
数据库·人工智能·python·elasticsearch·log4j