11. GIT 分支管理


11.1 介绍

11.1.1 一个分支实例

在这里插入图片描述

11.1.2 分支合并示意图

在这里插入图片描述

  1. 分支可以有多个 (根据业务需求)
  2. 如果各分支没有交集,始终平行发展,则不需要合并 (merge)
  3. 如果两个分支,需要合并,则执行 merge 操作

11.2 创建 IDEA Maven 项目,和 Gitee 的 xjs-erp 代码仓库关联

  1. 先在 Gitee 创建仓库 hsp-erp, 并设置成开源
  2. 在新的目录比如 d:/idea_projects 使用 idea 创建 xjs-erp maven ,并和 Gitee 仓库 xjs-erp 关联,前面已经学过了,自己回顾一下
  3. 创建文件 XjsErpApplication.java ,写入一些内容
  4. 将 XjsErpApplication.java push 到 Gitee 远程仓库,执行 add => commit => push
  5. 观察 Gitee 远程仓库是否已经 push 成功

11.3 git 分支指令

11.3.2 指令一览

# 列出所有本地分支
$ git branch

# 列出所有远程分支
$ git branch -r

# 列出所有本地分支和远程分支
$ git branch -a

# 新建一个分支,但依然停留在当前分支
$ git branch [branch-name]

# 新建一个分支,并切换到该分支
$ git checkout -b [branch]

# 新建一个分支,指向指定commit
$ git branch [branch] [commit]

# 新建一个分支,与指定的远程分支建立追踪关系
$ git branch --track [branch] [remote-branch]

# 切换到指定分支,并更新工作区
$ git checkout [branch-name]

# 切换到上一个分支
$ git checkout -

# 建立追踪关系,在现有分支与指定的远程分支之间
$ git branch --set-upstream [branch] [remote-branch]

# 合并指定分支到当前分支
$ git merge [branch]

# 选择一个commit,合并进当前分支
$ git cherry-pick [commit]

# 删除分支
$ git branch -d [branch-name]

# 删除远程分支
$ git push origin --delete [branch-name]
$ git branch -dr [remote/branch]

11.3.3 应用实例

11.3.3.1 需求:克隆 xjs-erp 仓库, 创建分支 v1.0 并提交到远程仓库
11.3.3.2 指令操作演示

在这里插入图片描述

在这里插入图片描述

特别说明:

  1. 当执行 git checkout v1.0 指令后,会切换到指定分支 v1.0
  2. 这时工作区:workspace 代码就是在 v1.0 下生效
  3. 你 commit 和 push 就是针对 v1.0 这个分支
  4. 使用 git branch 指令,再次查看本地分支,发现已经切换到 v1.0 了
  5. 注意看 颜色 和 * 的变化
#将本地分支 v1.0 作为独立分支提交到远程
git push origin v1.0:v1.0

在这里插入图片描述

在这里插入图片描述

11.4 IDEA 项目创建分支

  1. 创建分支

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

  1. 把分支同步到 Gitee 远程仓库

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

  1. 查看远程仓库

在这里插入图片描述

11.5 IDEA 项目切换分支, 进行工作

  1. 切换分支 (指令 checkout)

在这里插入图片描述

在这里插入图片描述

  1. 在 v2.0 分支下,我们修改/增加一下文件,就是针对当前 v2.0 的

在这里插入图片描述

  1. 把 XjsErpApplication.java Add => Commit => Push 到 Remote 仓库,按照步骤来

在这里插入图片描述

  1. 观察 Gitee 的远程仓库变化

在这里插入图片描述

在这里插入图片描述

  1. 观察本地仓库 版本切换的变化

在这里插入图片描述
在这里插入图片描述

11.6 IDEA 项目分支合并, 没有冲突的情况

● 在进行分支合并时,如果没有冲突 (比如没有修改同一个文件),这时会比较顺畅

  1. 案例演示/需求说明:将分支 v3.0 合并到 Master 主分支
  2. 从 master 开一个分支 v3.0 ,在 v3.0 增加一些文件,不在 master 和 v3.0 修改同一个文件

在这里插入图片描述

  1. 将分支 v3.0 同步到 Gitee 远程仓库,操作步骤和前面 v2.0 一样

在这里插入图片描述

  1. 切换到 v3.0 ,并增加一个文件 Hi.java ,并 Add => Commit => Push 到远程仓库

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

  1. 注意看 Master 主分支,在本地仓库和远程仓库,都没有 Hi.java

在这里插入图片描述

在这里插入图片描述

  1. 将 v3.0 合并到 Master 分支,注意当前是 Master (看图标)

在这里插入图片描述

  1. 注意看 Master 主分支,这时在本地仓库,有 Hi.java ,但是远程仓库还没有

在这里插入图片描述

在这里插入图片描述

  1. 将本地的 Master 分支,Push 到远程仓库,这时观察远程仓库 Master 下也有 HI.java 了

在这里插入图片描述

在这里插入图片描述

11.7 IDEA 项目分支合并,有冲突的情况

11.7.1 手动修改,解决冲突

● 如果同一文件在合并分支时都被修改了则会引起冲突,修改冲突文件后重新提交 (说明:这时要决定保留哪个分支代码)

  1. 案例演示/需求说明:将分支 v3.0 合并到 Master 主分支
  2. 切换到 v3.0 ,修改 XjsErpApplication.java

在这里插入图片描述

  1. 把 XjsErpApplication.java 进行 Add => Commit => Push 操作 (如果已经 Add 过, 就不需要Add)

在这里插入图片描述

  1. 切换到 Master ,也修改一下 Master 的 XjsErpApplication.java ,同样进行
    Add => Commit => Push (如果已经 Add 过,就不需要 Add) 操作

在这里插入图片描述

在这里插入图片描述

  1. 将 V3.0 合并到 Master

在这里插入图片描述

========== 出现冲突 ==========

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

11.7.1 接受某一方,解决冲突

  1. 案例演示/需求说明:将分支 v2.0 合并到 Master 主分支
  2. 切换到 v2.0, 修改 HspErpApplication.java ,并 add => commit => push

在这里插入图片描述

  1. 切 换 到 Master ,也 修 改 一 下 Master 的 HspErpApplication.java ,同样进行 Add => Commit => Push (如果已经 Add 过,就不需要 Add) 操作

在这里插入图片描述

  1. 将 V3.0 合并到 Master

在这里插入图片描述

========== 出现冲突 ==========

在这里插入图片描述

  1. 观察本地的 Master 分支的 XjsErpApplication.java ,没有变化 (以master为准) ,这里相当于放弃了 v2.0 的编辑,可以不用 push ,因为本地 master 分支 和 远程的 master 是一样的

在这里插入图片描述

在这里插入图片描述

  1. 注意这里如果是以 v2.0 为准来解决合并冲突,则需将 Master Push 到 Gitee 远程仓库,这样就会看到相应的变化 (注意在 Push 前,请确认要 Push 的文件/文件夹是已经 Committed ,否则你看不到变化)

11.8 IDEA 项目删除分支

11.8.1 彻底删除某个分支

  1. 如果某个分支不需要了,可以删除,一定要慎重

在这里插入图片描述

在这里插入图片描述

  1. 注意观察远程仓库,分支 V3.0 也没有了

在这里插入图片描述

11.8.2 只删除本地分支,还可以重新获取

  1. 删除本地的 v2.0 分支

在这里插入图片描述

在这里插入图片描述

  1. 从远程仓库获取刚刚删除的 v2.0 分支

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

11.9 注意事项和细节说明

  1. 如果同一文件在合并分支时都被修改了则会引起冲突,修改冲突文件后重新提 (说明:这时要决定保留哪个分支代码)
  2. Master 主分支应该非常稳定,用来发布新版本,一般情况下不要在上面工作,工作一般在新建的分支 (比如 dev、v1.0、v2.0) 上工作
  3. 分支代码稳定后,可以合并到主分支 Master
  4. 在进行分支合并时,最好是各分支都已经处于 Committed 的状态,这样可以减小处理合并冲突的难度
  5. Push 操作,是 Push 你已经 Committed 的代码,如果你修改了一个文件,但是你没有执行 Commit ,那么你 Push 的其实是上次 Committed 的状态
  6. add 、 commit 、push 的操作可以针对单个文件,也可以针对文件夹 (可以看一下 Idea 的 git 操作菜单)
  7. 文件要 Commit 前需要先 Add 到 暂存区 ,以后文件修改了,就可以直接 Commit
  8. 如果要删除文件,可以在本地删除该文件,然后 commit 文件所在文件夹即可,并重新 push 该分支,那么在远程仓库,也会删除对应分支的文件

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

要学就学灰太狼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值