閱讀本文前,假設已經學習過git的理論基礎以及git命令行操做html
本文總結的都是IDEA界面操做中,比傳統命令行有優點的部分,
github
其他用IDEA--Terminal命令行解決就好 ~ ~學習
左邊是所有的分支,包括Local和Remote:spa
(黃色表示如今的Local分支)命令行
更新 對比
3d
能夠進行分支增長、刪除;code
從現有本地分支,拉出來一個新的分支,而後嘗試開發。。。htm
隨時能夠在右下角查看/操做分支:blog
能夠checkout來切換分支:
能夠compare分支
對比 有兩種,
一種是左邊和別的分支對比;
另外一種是時間線上的對比(又分爲:普通推動=>2窗口、merge=>3窗口)
如圖,選擇時間線,再選擇文件,雙擊便可查看對比。
選擇文件後,點擊,便可查看此文件的整個時間線修改
中間區域能夠看到整個脈絡(整個團隊的commit)
能夠看到commit人和時間:
1)能夠選擇不一樣分支的時間線:
好比origin/jqy001這個遠程分支:
與上圖中總圖的顏色是對應的;
全部成員的遠程分支的commit顯示的是同樣的;不同的是本地分支(看不到別人的本地分支)
2)能夠指定文件,查看對應文件的git
3)除此以外,還能夠指定用戶、修改時間:
右下角展現commit詳細信息
這個是commit版本中指向的HEAD,
這裏能夠選擇回退到任意的commit版本
還能夠:
compare比對
reset 回退HEAD (soft / hard)
revert commit 與舊版本merge(3窗合併)
new branch從舊版本新建分支出來(修復bug)
cherry-pick
Refresh
Cherry-Pick
Turn IntelliSort On
查看這次commit的修改內容(普通修改是2個窗口對比;conflict解決是3個窗口對比)
回退
縱向查看文件的整個修改
Add
Commit File =>單文件 commit的時候能夠選擇commit&push
Commit Directory =>文件夾(要選擇整個文件夾右擊)
Push 要選擇遠程分支,否則默認新建同名遠程分支
右上角一小撮快捷鍵,分別是pull、commit、push、history、rollback(返回到上一次commit)
Compare with 對比文件
Compare with branch 和不一樣分支的對比(將整個src對比以前branch就看到本身修改的部分)
Show History能夠查看歷史的各個branch脈絡
解決衝突的時候出現如下界面:
從左右的兩個branch中,把咱們須要的內容引入到中間的result中。這樣便於比對和彙總。
cherry-pick
相似於一個定製化的merge,它能夠把其它分支上的commit一個個摘下來,合併到當前分支
git checkout [目標分支] //先切換到咱們開始的舊分支做爲基礎 git cherry-pick commitId_1 commitId_2 ... //按順序挑選須要的commitID
例子:
從本地分支jqy拉出來2個分支jqy-三、jqy-4,分別增長新特性,而後切換回jqy分支,
選擇時間線裏面的jqy-三、jqy-四、或者之前的各個分支,點擊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
左邊本身的,中間是結果,右邊是別的分支已經作的修改: