05 Git分支与冲突

第5章:Git分支与冲突

一、Git分支介绍

一)Git分支

​ Git的分支是让Git从众多版本控制软件中脱颖而出的特点之一。

​ 使用分支意味着你可以把你的工作从开发主线上分离开来,以免影响开发主线。

在这里插入图片描述

​ Git 的分支,其实本质上仅仅是指向提交对象的可变指针

​ Git 的默认分支名字是 master

​ master分支会在每次提交时自动向前移动。

在这里插入图片描述

二、创建分支

​ Git创建新分支非常简单,它其实就是创建了一个可以移动的新的指针

在这里插入图片描述

一)TortoiseGit

​ 右键,TortoiseGit,创建分支

在这里插入图片描述

​ 查看已经创建的分支

在这里插入图片描述

​ 创建历史版本的分支

在这里插入图片描述

二)Git命令

​ 命令;git branch <name>

# 创建分支03
$ git branch 03

三、切换分支

​ 通过切换分支可以将工作区切换到不同的分支

​ Git中有一个名为 HEAD的特殊指针,通过它可以知道当前工作区在哪一个分支上

在这里插入图片描述

一)TortoiseGit

​ 在项目中,右键,TortoiseGit,切换/检出,选择需要切换的“分支”

在这里插入图片描述

二)Git

​ 切换到已存在的分支:git checkout <name>

​ 创建新分支并切换到该分支:git checkout -b <name>

# 切换到分支01
$ git checkout 01
Switched to branch '01'

# 基于01的分支,创建04分支,并检出到04
$ git checkout -b 04
Switched to a new branch '04'

四、删除分支

一)TortoiseGit

​ 在项目中,右键,TortoiseGit,版本分支图

在这里插入图片描述

​ 右键,删除分支/标签,选择需要删除的“分支”

​ 注意:如果需要删除当前正在使用的分支,需要切换到其他分支

在这里插入图片描述

二)Git

​ 命令:git branch -d <name>

# 删除01分支
$ git branch -d 01
Deleted branch 01 (was 8640e2a).

# 列出所有版本(带*的表示当前版本)
$ git branch
  03
* 04
  master

五、合并分支

​ 分支上的开发完成以后,就可以将分支的内容合并到别的分支

在这里插入图片描述

一)快进合并

​ Fast-forward 是最简单的一种合并策略,这种策略适用于要合并的两个分支并没有分叉的情况。

在这里插入图片描述

1.TortoiseGit

​ 先切换到master

在这里插入图片描述

​ 执行合并

在这里插入图片描述

2.Git

​ 命令:git merge <name>

# 切换到master分支
$ git checkout master
Already on 'master'
Your branch is up to date with 'origin/master'.

# git merge 需要合并的分支名
$ git merge 04

二)自动合并

​ 当要合并的两个分支都有新的提交,就不再是fast-forward了。

​ 如果两个分支修改的内容没有冲突,则Git会自动合并

​ 修改不同的文件

​ 修改同一文件不同的行

​ 修改的内容一模一样

在这里插入图片描述

​ 步骤:和快进合并相同

六、冲突及处理

​ 如果两个分支修改的内容有冲突,Git无法自动合并,就会产生冲突

​ 此时我们需要手动合并文件,然后提交版本就可以完成合并

在这里插入图片描述

一)TortoiseGit

在这里插入图片描述

七、Git标签

​ Git 可以给仓库历史中的某一个提交打上标签,以示重要

​ 比较有代表性的是人们会使用这个功能来标记发布结点( v1.0 、 v2.0 等等)

一)TortoiseGit

在这里插入图片描述

二)Git

​ 命令:git tag -a <name>

# 切换到分支01
$ git checkout 01
Switched to branch '01'

# git tag -a 标签名 -m 描述
$ git tag -a v1.0 -m "my first version 1.0"

八、远程分支

​ 远程分支是远程仓库中的分支,可以将本地分支与远程分支关联,利用pull和push同步本地分支和远程分支

在这里插入图片描述

一)远程分支的推送

1.TortoiseGit

​ 通过“推送”命令可以将本地分支内容推送到远程分支

​ 远程分支如果不存在,会自动创建

2.Git

​ 命令:git push <远程仓库名> <本地分支名>:<远程分支名>

$ git push -u origin 03:03
Total 0 (delta 0), reused 0 (delta 0), pack-reused 0 (from 0)
remote: Powered by GITEE.COM [GNK-6.4]
remote: Create a pull request for '03' on Gitee by visiting:
remote:     https://gitee.com/quite-moon/test/pull/new/quite-moon:03...quite-moon:master
To gitee.com:quite-moon/test.git
 * [new branch]      03 -> 03
branch '03' set up to track 'origin/03'.

二)远程分支的拉取

​ 远程分支已和本地分支建立关联

​ 使用“拉取”功能

在这里插入图片描述

​ 远程分支还未和本地分支建立关联

​ 使用“切换/检出”功能,拉取远程的分支的同时创建本地的跟踪分支

在这里插入图片描述

九、远程分支的冲突管理

​ 当远程分支冲突时,需先“拉取”,解决冲突;然后“提交";最后”推送“

​ 实际开发中,建议开发前,创建新分支,待开发完,再合并删除

相关推荐

  1. git拉取合并分支冲突解决

    2024-07-21 10:46:03       27 阅读
  2. 分支解决冲突 & 分支管理策略 git merge命令详解

    2024-07-21 10:46:03       50 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-21 10:46:03       52 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-21 10:46:03       54 阅读
  3. 在Django里面运行非项目文件

    2024-07-21 10:46:03       45 阅读
  4. Python语言-面向对象

    2024-07-21 10:46:03       55 阅读

热门阅读

  1. 录入学生信息

    2024-07-21 10:46:03       17 阅读
  2. 分布式ID是什么?有哪些解决方案?

    2024-07-21 10:46:03       16 阅读
  3. 【c++】c++新概念“列表”

    2024-07-21 10:46:03       13 阅读
  4. test_demo

    2024-07-21 10:46:03       15 阅读
  5. C语言MAX_PATH和PATH_MAX的区别

    2024-07-21 10:46:03       14 阅读
  6. jEasyUI 创建简单窗口

    2024-07-21 10:46:03       18 阅读
  7. TMS320F28335多级中断及中断响应过程

    2024-07-21 10:46:03       13 阅读
  8. 微信小程序反编译工具安装【PC端程序包详解】

    2024-07-21 10:46:03       16 阅读
  9. 磁盘IO挂起(Disk IO hang)

    2024-07-21 10:46:03       16 阅读
  10. 昇思22天

    2024-07-21 10:46:03       14 阅读