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

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

相关推荐
日更嵌入式的打工仔5 小时前
存储同步管理器SyncManager 归纳
笔记·单片机·嵌入式硬件
Larry_Yanan5 小时前
QML学习笔记(四十)QML的FileDialog和FolderDialog
笔记·qt·学习
唐青枫6 小时前
Git 提交时神秘的 create mode 100644 到底是什么?一文告诉你答案!
git
春生野草6 小时前
Git-git stash与分支管理
git
ljh5746491196 小时前
Git合并冲突解决方法
git
悟能不能悟6 小时前
git revert commit和undo commit的区别
git
爱上妖精的尾巴6 小时前
5-22 WPS JS宏reduce数组的归并迭代应用(实例:提取最大最小值的记录)
服务器·前端·javascript·笔记·wps·js宏
爱因斯坦乐9 小时前
【vue】I18N国际化管理系统
前端·javascript·vue.js·笔记·前端框架
Ro Jace9 小时前
模式识别与机器学习课程笔记(4):线性判决函数
人工智能·笔记·机器学习
Rousson10 小时前
硬件学习笔记--82 连接器的选用原则与流程
笔记·单片机·学习