前言
阅读本文前,假设已经学习过git的理论基础以及git命令行操作
本文总结的都是IDEA界面操作中,比传统命令行有优势的部分,
其余用IDEA--Terminal命令行解决就好 ~ ~
从Tool windows中的Git:
左边是全部的分支,包括Local和Remote:
(黄色表示现在的Local分支)
可以进行分支增加、删除;
更新
对比 有两种,
一种是左边和别的分支对比;
另一种是时间线上的对比(又分为:普通推进=>2窗口、merge=>3窗口)
如图,选择时间线,再选择文件,双击即可查看对比。
选择文件后,点击,即可查看此文件的整个时间线修改
中间区域可以看到整个脉络(整个团队的commit)
可以看到commit人和时间:
1)可以选择不同分支的时间线:
比如origin/jqy001这个远程分支:
与上图中总图的颜色是对应的;
所有成员的远程分支的commit显示的是一样的;不一样的是本地分支(看不到别人的本地分支)
2)可以指定文件,查看对应文件的git
3)除此之外,还可以指定用户、修改时间:
Refresh
Cherry-Pick
Turn IntelliSort On
查看此次commit的修改内容(普通修改是2个窗口对比;conflict解决是3个窗口对比)
回退
纵向查看文件的整个修改
右下角展示commit详细信息
Git -- add、commit、push 一条龙
Add
Commit File =>单文件 commit的时候可以选择commit&push
Commit Directory =>文件夹(要选择整个文件夹右击)
Push 要选择远程分支,不然默认新建同名远程分支
Compare with 对比文件
Compare with branch 和不同分支的对比(将整个src对比之前branch就看到自己修改的部分)
Show History可以查看历史的各个branch脉络
解决冲突的时候出现以下界面:
从左右的两个branch中,把我们需要的内容引入到中间的result中。这样便于比对和汇总。
右上角一小撮快捷键,分别是pull、commit、push、history、rollback(返回到上一次commit)
从现有本地分支,拉出来一个新的分支,然后尝试开发。。。
随时可以在右下角查看/操作分支:
可以checkout来切换分支:
可以compare分支
这个是commit版本中指向的HEAD,
这里可以选择回退到任意的commit版本
还可以:
compare比对
reset 回退HEAD (soft / hard)
revert commit 与旧版本merge(3窗合并)
new branch从旧版本新建分支出来(修复bug)
cherry-pick
cherry-pick
类似于一个定制化的merge,它可以把其它分支上的commit一个个摘下来,合并到当前分支
git checkout [目标分支] //先切换到我们开始的旧分支作为基础 git cherry-pick commitId_1 commitId_2 ... //按顺序挑选需要的commitID
例子:
从本地分支jqy拉出来2个分支jqy-3、jqy-4,分别增加新特性,然后切换回jqy分支,
选择时间线里面的jqy-3、jqy-4、或者以前的各个分支,点击cherry-pick然后就可以merge了(可以增加这个cherry的一个commit的特性)
rebase
merge和rebase的区别:
merge多线交织,rebase永远只有一条线!!
https://zhuanlan.zhihu.com/p/75499871 重新截图
rebase做两件事:
1)合并多个commit为一个完整commit
git rebase -i [startpoint] [endpoint] git rebase -i HEAD~3
2)将某一段commit粘贴到另一个分支上
git rebase [startpoint] [endpoint] --onto [branchName] 例子:
git rebase 90bc0045b^ 5de0da9f2 --onto master
rebase深化阅读:
https://removeif.github.io/develop/Git-rebase-%E7%94%A8%E6%B3%95%E7%A4%BA%E4%BE%8B%E5%B0%8F%E7%BB%93.html
https://www.cnblogs.com/ludashi/p/8213550.html
解决冲突:
左边自己的,中间是结果,右边是别的分支已经做的修改: