11. GIT 分支管理

文章目录

    • 11.1 介绍
      • 11.1.1 一个分支实例
      • 11.1.2 分支合并示意图
    • 11.2 创建 IDEA Maven 项目,和 Gitee 的 xjs-erp 代码仓库关联
    • 11.3 git 分支指令
      • 11.3.2 指令一览
      • 11.3.3 应用实例
        • 11.3.3.1 需求:克隆 xjs-erp 仓库, 创建分支 v1.0 并提交到远程仓库
        • 11.3.3.2 指令操作演示
    • 11.4 IDEA 项目创建分支
    • 11.5 IDEA 项目切换分支, 进行工作
    • 11.6 IDEA 项目分支合并, 没有冲突的情况
    • 11.7 IDEA 项目分支合并,有冲突的情况
      • 11.7.1 手动修改,解决冲突
      • 11.7.1 接受某一方,解决冲突
    • 11.8 IDEA 项目删除分支
      • 11.8.1 彻底删除某个分支
      • 11.8.2 只删除本地分支,还可以重新获取
    • 11.9 注意事项和细节说明


11.1 介绍

11.1.1 一个分支实例

  • 项目地址:https://gitee.com/ZhongBangKeJi/CRMEB-Min

11. GIT 分支管理_第1张图片

11.1.2 分支合并示意图

11. GIT 分支管理_第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 分支指令

  • 地址:https://gitee.com/all-about-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 指令操作演示

11. GIT 分支管理_第3张图片

11. GIT 分支管理_第4张图片

特别说明:

  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. GIT 分支管理_第5张图片

11. GIT 分支管理_第6张图片

11.4 IDEA 项目创建分支

  1. 创建分支

11. GIT 分支管理_第7张图片

11. GIT 分支管理_第8张图片

11. GIT 分支管理_第9张图片

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

11. GIT 分支管理_第10张图片

11. GIT 分支管理_第11张图片

11. GIT 分支管理_第12张图片

  1. 查看远程仓库

11. GIT 分支管理_第13张图片

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

  1. 切换分支 (指令 checkout)

11. GIT 分支管理_第14张图片

11. GIT 分支管理_第15张图片

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

11. GIT 分支管理_第16张图片

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

11. GIT 分支管理_第17张图片

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

11. GIT 分支管理_第18张图片

11. GIT 分支管理_第19张图片

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

11. GIT 分支管理_第20张图片
11. GIT 分支管理_第21张图片

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

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

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

11. GIT 分支管理_第22张图片

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

11. GIT 分支管理_第23张图片

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

11. GIT 分支管理_第24张图片

11. GIT 分支管理_第25张图片

11. GIT 分支管理_第26张图片

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

11. GIT 分支管理_第27张图片

11. GIT 分支管理_第28张图片

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

11. GIT 分支管理_第29张图片

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

11. GIT 分支管理_第30张图片

11. GIT 分支管理_第31张图片

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

11. GIT 分支管理_第32张图片

11. GIT 分支管理_第33张图片

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

11.7.1 手动修改,解决冲突

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

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

11. GIT 分支管理_第34张图片

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

11. GIT 分支管理_第35张图片

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

11. GIT 分支管理_第36张图片

11. GIT 分支管理_第37张图片

  1. 将 V3.0 合并到 Master

11. GIT 分支管理_第38张图片

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

11. GIT 分支管理_第39张图片

11. GIT 分支管理_第40张图片

11. GIT 分支管理_第41张图片

11.7.1 接受某一方,解决冲突

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

11. GIT 分支管理_第42张图片

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

11. GIT 分支管理_第43张图片

  1. 将 V3.0 合并到 Master

11. GIT 分支管理_第44张图片

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

11. GIT 分支管理_第45张图片

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

11. GIT 分支管理_第46张图片

11. GIT 分支管理_第47张图片

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

11.8 IDEA 项目删除分支

11.8.1 彻底删除某个分支

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

11. GIT 分支管理_第48张图片

11. GIT 分支管理_第49张图片

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

11. GIT 分支管理_第50张图片

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

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

11. GIT 分支管理_第51张图片

11. GIT 分支管理_第52张图片

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

11. GIT 分支管理_第53张图片

11. GIT 分支管理_第54张图片

11. GIT 分支管理_第55张图片

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 该分支,那么在远程仓库,也会删除对应分支的文件

11. GIT 分支管理_第56张图片

你可能感兴趣的:(Git,git,github,java)