版本控制工具-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 命令执行过程如下

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

相关推荐
孤寂大仙v2 小时前
【Linux笔记】——进程信号的产生
linux·服务器·笔记
愚戏师2 小时前
Linux复习笔记(三) 网络服务配置(web)
linux·运维·笔记
scdifsn3 小时前
动手学深度学习12.4.硬件-笔记&练习(PyTorch)
pytorch·笔记·深度学习·缓存·内存·硬盘·深度学习硬件
北温凉3 小时前
【学习笔记】机器学习(Machine Learning) | 第六章(2)| 过拟合问题
笔记·机器学习
lwewan4 小时前
26考研——中央处理器_异常和中断机制(5)
笔记·考研
潇-xiao6 小时前
流体力学绪论(期末复习)
笔记
小彭律师6 小时前
电动汽车充换电设施可调能力聚合评估与预测 - 使用说明文档
笔记
&Cheems7 小时前
ZYNQ笔记(二十一): VDMA HDMI 彩条显示
笔记·嵌入式硬件·fpga开发
忧伤火锅麻辣烫7 小时前
Spark,RDD中的转换算子
笔记·微信
孤寂大仙v7 小时前
【Linux笔记】——进程信号的保存
java·linux·笔记