Git--IDEA界面操做

前言

閱讀本文前,假設已經學習過git的理論基礎以及git命令行操做html

參見:Git命令行操做git

本文總結的都是IDEA界面操做中,比傳統命令行有優點的部分,
github

其他用IDEA--Terminal命令行解決就好 ~ ~學習

 


分支管理


 

查看分支

左邊是所有的分支,包括Local和Remote:spa

(黃色表示如今的Local分支)命令行

 


操做分支

更新    對比    3d

能夠進行分支增長、刪除;code


 拉出分支 (新增分支)

從現有本地分支,拉出來一個新的分支,而後嘗試開發。。。htm

隨時能夠在右下角查看/操做分支:blog

能夠checkout來切換分支:

能夠compare分支

 


對比分支

對比    有兩種,

  一種是左邊和別的分支對比;

  另外一種是時間線上的對比(又分爲:普通推動=>2窗口、merge=>3窗口)

 

 

 如圖,選擇時間線,再選擇文件,雙擊便可查看對比。

選擇文件後,點擊,便可查看此文件的整個時間線修改

 

 


 

Commit管理


 

中間區域能夠看到整個脈絡(整個團隊的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、push 

  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

 


解決衝突:

 

 左邊本身的,中間是結果,右邊是別的分支已經作的修改:

相關文章
相關標籤/搜索