1. 程式人生 > >Android Studio系列(三)使用Version Control管理多倉庫多分支原始碼

Android Studio系列(三)使用Version Control管理多倉庫多分支原始碼

開發android系統原始碼的同學都知道,我們的工作都是很多人協同工作,因此git版本管理及歷史修改查閱異常重要!甚至比開發app重要的多!
此文旨在介紹一下用AS中自帶的Version Control工具來管理android系統原始碼,鑑於android原始碼的體積龐大與開源特性,其中一個app的git倉庫裡就可能包含上千條修改,而且很多歷史修改年代久遠,且不是身邊同事的修改,使用git相關命令檢視修改記錄效率低下且介面不夠友好,而AS中的版本管理工具則相當之優秀,不僅功能強大而且多數功能都做出了視覺化的效果,使用之後大大提升了協同開發的效率。
希望各位讀者看了此文以後能有所收穫。
正文開始:

這次講一下在Android Studio中進行適當的配置,使用內建Version Control工具對原始碼目錄進行版本管理。

一、 配置倉庫目錄

點開“設定”切換到 Version Control,點選右側“+”號新增要管理的目錄,(我們這裡一Telephony目錄為例)
在這裡插入圖片描述

選擇目錄
在這裡插入圖片描述
如果選擇的目錄是有版本控制工具的配置的,會自動識別出是git或者SVN等。
在這裡插入圖片描述

二、 Version Control功能

Log

之後在程式的底部會出現一個Version Control 標籤,這裡是顯示版本資訊的主要區域。
當前標籤會顯示所有新增到Version Control管理的目錄的Log資訊。各種關鍵資訊以不同顏色高亮區分。
選中其中一條提交後,在右側出現當次提交修改的檔案,雙擊右側檔案可開啟對比視窗顯示出更改的內容(下面有展示)。在Log主視窗下面是Commit Message視窗,這個視窗顯示當次提交的commit資訊。
1)修改過的檔案顏色會變藍(圖中紅色數字“1”) 在這裡插入圖片描述


PS:當前在Version Control的Log標籤下,因為當時游標焦點在編輯區,所以本該是白色高亮的“Log”在圖中看起來是灰色的。

2)顯示出Log詳細資訊,需要注意的是如果你用Version Control管理了多個目錄,那麼這些目錄下面的log資訊是全部在一起顯示的,這樣看起來可能比較亂,這時候你可以像下圖一樣選擇一下路徑,就可以只看一個目錄(倉庫)下的log資訊。

在Path左邊還有其他功能,分支,提交作者,日期,請自行體驗。 在這裡插入圖片描述

3)選中一條修改記錄後,右側會顯示出對應修改過的檔案,雙擊檔案可開啟該次提交修改了什麼內容。如下圖:
在這裡插入圖片描述

Local Change

在local Change標籤中檢視本次修改,可以選擇分組(Group)或其他檢視方式,開啟右側預覽視窗需手動開啟。檔案變動內容以三種顏色區分,藍色修改,灰色刪除,綠色增加。PS:預覽視窗中是可以直接編輯的。
在這裡插入圖片描述

Show History

這個功能可看單個檔案的修改記錄,點選下圖中“1”旁邊的Show History可開啟對應標籤。
在這裡插入圖片描述
從圖中我們可以看到單個檔案修改記錄的詳細資訊,同時在雙擊某條修改記錄的時候可以開啟視窗對比選中版本對比上一個版本修改了哪些內容。快捷鍵Ctrl+Shift+A(右鍵選單也有)檢視當此修改的檔案。

在一條記錄上右鍵選擇 Select in Git Log 則會跳轉到Log標籤下,同時右邊可以看到當此修改還修改了其他哪些檔案。

由於很多原始碼是從Cyanogenmod上拉下來的,這是你在Commit Message裡能過獲得Commit id的話,甚至可以到review.Cyanogenmod.org上搜素那次修改,檢視當時review程式碼情況時候的討論記錄!

圖中紅色數字“2”下面對應的很多按鈕,功能包括 1.檔案對比 2.與本地檔案對比 3.建立Patch等,但是這個patch和用git format-patch生成的patch格式不一樣,不能互通使用。

Branches Compare

其實這不是一個比較大的功能(但是是一個很強大的功能),但是對於多分支的系統原始碼級開發來說確實相當實用。

在AS右下角會顯示當前工作所在分支:
在這裡插入圖片描述

以上圖紅色圈內為入口點擊出現下圖:
紅色數字1是我們要比較的倉庫(對鉤表示當前檢視的檔案是屬於這個倉庫下面的);數字2是我們輸入的過濾關鍵字;3是所要比較的目標分支;4則是“比較”選項。
在這裡插入圖片描述
比較結果:
我們這個結果比較巧合哈,其中一個分支的提交全都合併到了另一個分支,不過從圖中下半部分顯示出了兩個分支log的不同之處,而且選中其中一條log右側會顯示出修改的檔案,雙擊則可以檢視修改內容。
在這裡插入圖片描述

Diff標籤下則是直接顯示兩個分支檔案的不同之處,同樣的還是雙擊檔案可檢視檔案內容差異。
在這裡插入圖片描述

當不同分支編譯出的結果表現不一樣的時候,這個功能可以快速定位到可以的程式碼塊。

三、上傳程式碼

修改完成後,點選圖中紅色數字“1”旁邊的Commit Changes按鈕(Ctrl+K),彈出Commit Changes視窗,填寫相應資訊後,點選右下commit按鈕可以提交,這個過程中AS會對程式碼進行分析並給出分析結果(預設的,可取消),提醒你review程式碼或者直接提交(因為原始碼中引用的一些資源找不到,所以分析結果中一定是有錯誤的,不用太在意,但是寫app的時候如果分析結果又錯,那就一定要review一下了)。
在這裡插入圖片描述
在這裡插入圖片描述
對了push的快捷鍵是Ctrl+Shift+K。

更多功能不再詳述,請自行體驗。

PS:大家有新發現的話,歡迎補充上來啊~