版本控制工具-git分支管理

目录

前言

本篇文章介绍git分支管理的基本命令,并说明如何解决git分支合并冲突,最后说明git merge命令与git rebase命令的区别。

一、git分支管理基本命令

1.1 基本命令

  • 查看本地仓库的分支

    bash 复制代码
    git branch

    对于一个新建的空本地仓库,需要进行一次commit操作,本地仓库才会自动生成一个主分支

  • 新增一个分支

    bash 复制代码
    git branch 分支名
  • 删除一个分支

    bash 复制代码
    git branch -d 分支名
    删除已被合并的分支
    
    git branch -D 分支名
    删除未被合并的分支
  • 切换分支

    bash 复制代码
    git switch 分支名
  • 合并分支

    bash 复制代码
    git merge 被合并分支名
    将当前分支与被合并分支进行合并
  • 查看合并过程

    bash 复制代码
    git log --graph --oneline --all

2.1 实例

step1 创建一个本地仓库用于分支管理练习

bash 复制代码
1. 在当前目录创建一个目录
mkdir git_branch
2. 切换到git_branch目录
cd ./git_branch/
3. 初始化一个仓库
git init

step2 在主分支创建main1.txt和main2.txt文件

bash 复制代码
1. 创建main1并提交
echo 'I am main1' > main1.txt
git add .
git commit -m 'main1:1'
2. 创建main2并提交
echo 'I am main2' > main2.txt
git add .
git commit -m 'main2:1'

step3 创建一个分支dev并在这个分支上创建dev1.txt和dev2.txt文件

bash 复制代码
创建分支dev
git branch dev

切换到dev分支
git switch dev

创建dev1并提交
echo 'I am dev1' > dev1.txt
git add .
git commit -m 'dev1:1'
创建dev2并提交
echo 'I am dev2' > dev2.txt
git add .
git commit -m 'dev2:1'

step4 再切换分支到主分支,再创建main3.txt

bash 复制代码
git switch master
ehco 'I am main3' > main3.txt
git add .
git commit -m 'main3:1'

step5 在主分支下合并dev分支

bash 复制代码
git merge dev

二、git分支合并冲突解决

分支合并冲突是指当两个分支操作同一文件的同一行时,git仓库无法决定保留哪个分支的内容

以上面的例子为例

主分支在main1.txt第二行添加内容:new content is added by master branch

dev分支在main1.txt第二行添加内容:new content is added by dev branch

bash 复制代码
1. master修改main1.txt
git switch master
echo 'new content is added by master branch' >> main1.txt
git add .
git commit -m 'main1:2 by master'
2. dev修改main1.txt
git switch dev
echo 'new content is added by dev branch' >> main1.txt
git add .
git commit -m 'main1:2 by dev'
3. 合并
git switch master
git merge dev

执行结果发送了冲突

查看main1.txt文件内容

手动编辑main1.txt文件

再次提交修改后的main1.txt文件

bash 复制代码
git add .
git commit -m 'main1:3 fix conflict'

在master分支查看合并后的main1.txt

在dev分支查看合并后的main1.txt

以上,则解决分支合并冲突的问题

三、git merge命令与git rebase命令对比

git merge命令执行过程如下

优点:不会破坏原分支的提交历史,方便回溯和查看
缺点:会产生额外的提交节点,分支图比较复杂

git rebase 命令执行过程如下

优点:不会新增额外的提交记录,形成线性历史,比较直观和干净
缺点:会改变提交历史,避免在共享分支使用

相关推荐
浅念-6 小时前
一文吃透Git:本地操作|冲突处理|远程协作|GitFlow工作流详解
大数据·git·elasticsearch·搜索引擎·gitflow
Sunshing158 小时前
Lyapunov方程系统本身稳定性判定与镇定性判定
笔记·学习
透明的玻璃杯9 小时前
热键驱动 Hotkey Features Integration v9.x(14MB)
笔记
滕州市燕猫虎计算机科技工作室个体工商户10 小时前
Git常用命令汇总
git
上海心泾国际物流有限公司10 小时前
我在几个医疗器械仓库记下的一组温湿度数据
经验分享·笔记·学习·健康医疗·交通物流
czhc114007566312 小时前
2026-09-11 一日综合:树的父链、git 概念、三方死锁、静默失败
大数据·git·elasticsearch
ChampaignWolf12 小时前
abapgit-agent:用 Git 当中介,让 Claude Code 自己完成 ABAP 闭环开发
git·ai·abap·claude·abapgit·mcp
嘴贱欠吻!12 小时前
如何成为 CJMP 贡献者:AtomGit贡献流程与要求
git·ci/cd
LuminousCPP13 小时前
数据结构-排序(三):快速排序进阶|挖坑法、双指针交换与手动栈非递归实现
c语言·数据结构·笔记·算法·排序算法
chushiyunen13 小时前
mockito笔记
java·开发语言·笔记