查看分支
- IDEA状态栏下 --> Git:的管理按钮 --> 点击 --> 展示 Git Branches
检出分支及切换分支
远程分支get到本地
- 在Remote Branches --> Checkout As … --> 指定分支名称
- 完成之后,在Local Branches
本地分支切换
- 在 Local Branches --> Checkout --> 指定分支
- 切换完成
- 分支切换并非文件copy的操作,而是指针的操作; 而是git HEAD指针指向的切换,指向当前分支。
切换分支时,分支间相互影响
-
如果本地工作空间没有uncommitted changes, 分支会顺利切换;所以:切换操作时,尽量将当前分支的代码 commit,保持工作区和缓存区clean
- commit 之后的版本不会影响到被切换的分支;完整切换到另外一个分支,切换回来还会保留原来修改内容
-
实在工作未结束,无法提交的: (比如 分支A --> 分支B);IDEA会给出提示-
- 出现这种情况如何处理:
- 选择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 ;不然会出现远程分支不是最新的情况,导致合并没效果
- 执行完,结果提示
- 选择分支 B --> Merge into Current ;会产生以下两种情况
- 情况1:本地工作区存或暂存区存在uncommited状态的修改,并且出现冲突。
- 会出现Git Merge Problem的处理界面
- 这种情况处理就点击Smart Merge, 类似上面checkout 碰到的一样处理
- 会出现Git Merge Problem的处理界面
- 情况2:本地工作区和暂存区很干净,如果存在仓库间的冲突
- 会出现如下File Merged with Conflicts的界面
- 双击文件或点击Merge,能展开处理冲突界面, 将最终代码合并到中间的 result 内容栏中。
- 处理完成之后点击Apply,完成手动merge,当前这条就在列表冲突中剔除了
- 会出现如下File Merged with Conflicts的界面
- 全部合并完成,在Version Control 控制台会出现合并成功提示
- 如果没有任何冲突,合并顺利,直接是此提示
- 如果没有任何冲突,合并顺利,直接是此提示
- 建议:合并分支之前同样尽量保持 工作区和暂存区 清洁。
- 本操作Merge 执行完 会自动执行commit操作,生成一条merge 的commit message
删除分支
- 原则上只允许删除本地的分支
刷新分支
- IDEA在已经存在的代码库的情况下,远程仓库新增了一个分支,在Git Branches窗口不会自动刷新,没有展示
- 解决方法:
- VCS --> Update Project
- OK 更新一下就有了
- VCS --> Update Project