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

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

相关推荐
放羊大亨39 分钟前
《认知觉醒》下篇·第六章第一节“清晰:一个观念,重构你的行动力” 总结
笔记
小白探索世界欧耶!~1 小时前
【踩坑】GitHub Actions 运行的 Linux 环境中,文件名是大小写敏感的
linux·运维·服务器·前端·vue.js·笔记·github
0x4082 小时前
数据结构--线性表&顺序表示(上)
数据结构·笔记
Tanner_SL2 小时前
Linux笔记之Ubuntu系统设置自动登录tty1界面
linux·笔记·ubuntu
Caroline皮皮2 小时前
团队开发中的Git 文件名大小写不敏感导致的文件冲突
git
愚润求学2 小时前
【C++】模板进阶
c语言·开发语言·c++·笔记·模板
东方芷兰2 小时前
JavaWeb 课堂笔记 —— 03 Vue
java·前端·javascript·vue.js·笔记
9ilk3 小时前
【Git】--- 多人协作实战场景
git
DXM05213 小时前
牟乃夏《ArcGIS Engine地理信息系统开发教程》学习笔记1
开发语言·经验分享·笔记·学习·arcgis·c#·arcgis engine
kfepiza4 小时前
硬盘分区格式方案之 MBR(Master Boot Record)主引导记录详解 笔记250407
linux·windows·笔记