Intellij IDEA--GIT(3)分支操作

时间:2024-03-15 10:05:28

查看分支


  • IDEA状态栏下 --> Git:的管理按钮 --> 点击 --> 展示 Git Branches
    Intellij IDEA--GIT(3)分支操作

检出分支及切换分支


远程分支get到本地
  • 在Remote Branches --> Checkout As … --> 指定分支名称
    Intellij IDEA--GIT(3)分支操作
  • 完成之后,在Local Branches
    Intellij IDEA--GIT(3)分支操作
本地分支切换
  • 在 Local Branches --> Checkout --> 指定分支
    Intellij IDEA--GIT(3)分支操作
  • 切换完成
    Intellij IDEA--GIT(3)分支操作
  • 分支切换并非文件copy的操作,而是指针的操作; 而是git HEAD指针指向的切换,指向当前分支。
切换分支时,分支间相互影响
  • 如果本地工作空间没有uncommitted changes, 分支会顺利切换;所以:切换操作时,尽量将当前分支的代码 commit,保持工作区和缓存区clean

    • commit 之后的版本不会影响到被切换的分支;完整切换到另外一个分支,切换回来还会保留原来修改内容
  • 实在工作未结束,无法提交的: (比如 分支A --> 分支B);IDEA会给出提示- Intellij IDEA--GIT(3)分支操作

    • 出现这种情况如何处理:
      • 选择Force Checkout, 本地工作空间(分支A)的一些未提交的修改会被覆盖(被分支B覆盖),会有很大可能丢代码!
      • 选择Smart Checkout,IDEA会先执行stash命令,贮存这些未提交的修改,然后checkout 到分支B,在切换到分支B后,unstash 这些修改,所以A分支本地的这些修改会带到B分支上。(关联GIT(08)分支管理 切换本地分支注意事项 )
      • 也可以使用上图中 Show Diff来做合并的,将分支A中的内容手工复制到分支B中。(稳妥的方式)

合并分支


  • 工作区在当前分支A ,需要将分支B 合并到分支A
  • 注意:从远程merge into current之前,需要做一次 Update Project ;不然会出现远程分支不是最新的情况,导致合并没效果
    Intellij IDEA--GIT(3)分支操作
  • 执行完,结果提示
    Intellij IDEA--GIT(3)分支操作
  • 选择分支 B --> Merge into Current ;会产生以下两种情况
    Intellij IDEA--GIT(3)分支操作
  • 情况1:本地工作区存或暂存区存在uncommited状态的修改,并且出现冲突。
    • 会出现Git Merge Problem的处理界面
      Intellij IDEA--GIT(3)分支操作
    • 这种情况处理就点击Smart Merge, 类似上面checkout 碰到的一样处理
  • 情况2:本地工作区和暂存区很干净,如果存在仓库间的冲突
    • 会出现如下File Merged with Conflicts的界面
      Intellij IDEA--GIT(3)分支操作
    • 双击文件或点击Merge,能展开处理冲突界面, 将最终代码合并到中间的 result 内容栏中。
      Intellij IDEA--GIT(3)分支操作
    • 处理完成之后点击Apply,完成手动merge,当前这条就在列表冲突中剔除了
      Intellij IDEA--GIT(3)分支操作
  • 全部合并完成,在Version Control 控制台会出现合并成功提示
    • 如果没有任何冲突,合并顺利,直接是此提示
      Intellij IDEA--GIT(3)分支操作
  • 建议:合并分支之前同样尽量保持 工作区和暂存区 清洁。
  • 本操作Merge 执行完 会自动执行commit操作,生成一条merge 的commit message
    Intellij IDEA--GIT(3)分支操作

删除分支


  • 原则上只允许删除本地的分支
    Intellij IDEA--GIT(3)分支操作

刷新分支


  • IDEA在已经存在的代码库的情况下,远程仓库新增了一个分支,在Git Branches窗口不会自动刷新,没有展示
    Intellij IDEA--GIT(3)分支操作
  • 解决方法:
    • VCS --> Update Project
      Intellij IDEA--GIT(3)分支操作
    • OK 更新一下就有了
      Intellij IDEA--GIT(3)分支操作
      Intellij IDEA--GIT(3)分支操作