当前位置: 首页 > news >正文

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

目录

  • 前言
  • 一、git分支管理基本命令
    • 1.1 基本命令
    • 2.1 实例
  • 二、git分支合并冲突解决
  • 三、git merge命令与git rebase命令对比

前言

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

一、git分支管理基本命令

1.1 基本命令

  • 查看本地仓库的分支

    git branch
    

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

  • 新增一个分支

    git branch 分支名
    
  • 删除一个分支

    git branch -d 分支名
    删除已被合并的分支git branch -D 分支名
    删除未被合并的分支
    
  • 切换分支

    git switch 分支名
    
  • 合并分支

    git merge 被合并分支名
    将当前分支与被合并分支进行合并
    
  • 查看合并过程

    git log --graph --oneline --all
    

2.1 实例

在这里插入图片描述

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

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

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

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文件

创建分支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

git switch master
ehco 'I am main3' > main3.txt
git add .
git commit -m 'main3:1'

step5 在主分支下合并dev分支

git merge dev

二、git分支合并冲突解决

分支合并冲突是指当两个分支操作同一文件的同一行时,git仓库无法决定保留哪个分支的内容
以上面的例子为例
主分支在main1.txt第二行添加内容:new content is added by master branch
dev分支在main1.txt第二行添加内容:new content is added by dev branch

1. master修改main1.txt
git switch master
echo 'new content is added by master branch'
git add .
git commit -m 'main1:2 by master'
2. dev修改main1.txt
git switch dev
git add .
git commit -m 'main1:2 by dev'
3. 合并
git switch master

执行结果发送了冲突
在这里插入图片描述
查看main1.txt文件内容
在这里插入图片描述
手动编辑main1.txt文件
在这里插入图片描述
再次提交修改后的main1.txt文件

git add .
git commit -m 'main1:3 fix conflict'

在master分支查看合并后的main1.txt
在这里插入图片描述
在dev分支查看合并后的main1.txt
在这里插入图片描述
以上,则解决分支合并冲突的问题

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

git merge命令执行过程如下
在这里插入图片描述
优点:不会破坏原分支的提交历史,方便回溯和查看
缺点:会产生额外的提交节点,分支图比较复杂

git rebase 命令执行过程如下
在这里插入图片描述
优点:不会新增额外的提交记录,形成线性历史,比较直观和干净
缺点:会改变提交历史,避免在共享分支使用

http://www.lryc.cn/news/382137.html

相关文章:

  • 医卫医学试题及答案,分享几个实用搜题和学习工具 #学习方法#知识分享#经验分享
  • 在dolphinDB上直接保存一个dataframe为分布式数据表
  • awk
  • 如何加速AI原生应用进程?华为云开天aPaaS提出新范式
  • Matlab基础语法:变量和数据类型,基本运算,矩阵和向量,常用函数,脚本文件
  • 弥补iPhone不足,推荐金鸣识别等几款APP神器
  • KLayout 中的默认数据类型
  • 视频云存储平台LntonCVS国标视频平台功能和应用场景详细介绍
  • C语言 将程序第4,5行改为 c1=197;c2=198;将程序第3行改为int c1,c2;
  • 【总线】AXI4第五课时:信号描述
  • 创建单例模式的六种方式
  • 实用软件下载:CrossOver 2024最新安装包及详细安装教程
  • 开启调试模式
  • pygame 绘制一个大黑脸
  • XMLXXE实体注入
  • 艺术家电gorenje x 设计上海丨用设计诠释“生活的艺术”
  • 【刷题篇】链表
  • 若依框架,小程序访问后端,后端访问客户端,客户端读取图片返回
  • os7安装gitlab
  • 木头姐:将出于经济方面的考虑支持特朗普
  • sql注入登陆绕过
  • QT利用QGraphicsDropShadowEffect效果及自定义按钮来实现一个炫酷键盘
  • 机器学习(一)
  • 【深度学习】python之人工智能应用篇——图像生成技术(一)
  • java 非srping 使用r2dbc操作mysql 增删改查代码
  • 假冒国企现形记:股权变更视角下的甄别分析
  • Django 使用Apscheduler执行定时任务
  • Shopee API接口:获取搜索栏生成的商品结果列表
  • 选择门店收银系统要考虑哪些方面?美业系统Java源码分享私
  • 智慧养老的养老方式及其技术实现与趋势