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

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

相关推荐
high20115 小时前
【Git】-- 版本说明
git
kaixin_learn_qt_ing5 小时前
git clone
git
sin22015 小时前
git stash
git
喝鸡汤5 小时前
一起学Git【第二节:创建版本库】
git
慢慢成长的码农5 小时前
git 同步分支操作
git
sin22015 小时前
git推送本地仓库到远程(Gitee)
git·gitee
冷眼看人间恩怨6 小时前
【Qt笔记】QDockWidget控件详解
c++·笔记·qt·qdockwidget
丁总学Java7 小时前
git branch -r(--remotes )显示你本地仓库知道的所有 远程分支 的列表
git
yylの博客10 小时前
Windows通过git-bash安装zsh
windows·git·bash·zsh
丁总学Java11 小时前
(Z Shell)zsh: no matches found: ? 使用单引号包裹
git·zsh