小米便籤AS部署之Git的基本使用

魔法少女小胖發表於2024-03-14

1 專案測試截圖 及倉庫地址

image
image

https://gitee.com/magicfatblink/Notes-master

2 小米便籤程式碼的移植

2.1 IDE 的準備

2.1.1 AS版本選擇

由於小米便籤是一個很老的專案,距最後一次提交已經有13年的歷史了

image

當時Android主流開發軟體還是eclipse,本專案原始程式碼也是基於eclipse執行的,所以我們匯入AS的時候需要進行一次轉換。實際執行發現,現如今AS的版本(2023.3.2)移除了對eclipse專案移植的功能(這個地方卡了我一天)。在網上查資料,檢視別人移植的教程發現,大部分人使用的都是之前的版本。

所以在官網找到之前的版本(我用的是2022.2.1)

https://developer.android.google.cn/studio/archive (這裡一定要把語言切換到英文否則下載出錯)
下載發現果然該版本有ADT功能(不知道為什麼高版本閹割了)

2.1.2 JAVA版本選擇

2022版最高支援Gradle 8.. 的版本,對應該版本的是JAVA 17 所以在java版本這裡又踩了一個坑。
至於Gradle是什麼,就簡單的理解成類似於maven就行了

2.2 程式碼修改

2.2.1 關於JAVA 17程式碼的修改

檔案app/src/main/java/net/micode/notes/ui/NoteEditActivity.java會報錯
擷取程式碼中報錯的一部分
image

提示我們
image

Constant expression required
經過查資料得知,在JAVA 17以後 switch..case都不支援非常數表示式,如果想使用相同的方法只能用if..else置換達到相同結果。
這下沒辦法了只能一個個更改
image
其實還有別的方法,換一個Gradle更低的版本以及對應的JAVA即可,但是本著IDE能不改動就不改動的原則還是辛苦置換下else即可,畢竟後者不需要廢腦子只是廢手

3 Git的使用

專案目前都已經構建測試完成,下面嘗試使用git進行管理。對於命令列和小烏龜兩種方式(cmd和gui的區別),我更喜歡cmd一些,所以接下來所有操作都基於命令列。

3.1 管理員視角下的Git操作

  • ①建立針對本作業的專案和軟體版本庫,在版本庫中建立“src”和“doc”兩個資料夾,分別儲存軟體系統的原始碼和報告文件。為了遵循AS檔案管理系統的管理方式,我在/app內放置了src和doc目錄、
    image

  • ②建立master、Dev,將當前版本存入master目錄下

image

(3) 實踐操作參考:組長組員兩個人協同開發:組長負責維護開發分支dev,組員向dev上傳提交;當dev測試合適後,組長有唯一許可權向master上傳作為最終結果。
① 遠端倉庫有master和dev兩個分支
② 組長本地有master和dev分支,分別關聯對應的遠端分支
③ 組員本地只有一個分支,關聯遠端dev分支【可以選擇clone某一個遠端分支到本地】
④ 具體開發流程是:
1 組長和組員分別在各自的本地dev分支開發,有階段性成果後push到遠端dev【若有衝突,解決衝突再合併】
2 當開發完成、結果穩定後,組長將本地的master和dev分支merge,再把master分支push上去

  • ③提交原始程式碼到gitee上
    image

  • ④建立一個Dev分支,從master分支分離(全部copy master分支)
    image

  • ⑤在本地以及遠端檢視倉庫,發現本地只有master倉庫沒有Dev
    image

  • ⑥所以建立一個本地分支來指向這個Dev
    image

  • ⑦切換分支
    image

  • ⑧假設我已經修改測試完畢,打算提交Dev分支
    image

  • ⑨檢視gitee:
    image

  • ⑩提示領先master一個版本,建立一個pull request來推送:
    image

  • ⑩①測試成功
    image
    image

  • ⑩②補充一點,為了模擬完整的開發,需要對master設定保護
    image
    目的是為了小組成員不能控制master

成員視角(非管理員視角)

  • ①在我接受了管理員邀請後,加入了此git專案:
    image

  • ②開始clone程式碼,注意這裡使用選項讓我克隆的是Dev分支
    image

  • ③測試一下是不是真的克隆了分支
    image

  • ④我修改了GtaskASync的一個類,然後現在開始提交分支
    image

  • ⑤再去gitee看,已經提交成功
    image

  • ⑥提交request
    image

  • ⑦這時再讓管理員稽核並且合併就可以了。
    image

關於git對於分別提交相同分支(不稽核的條件下)的處理

-兩人都對readme英文版進行修改

image

會發現第二個人就會報錯,錯誤衝突,只能解決衝突才能進一步修改。
所以正確的是提交前先拉取,本地合併,然後再提交。

3.4 用到的部分git程式碼

git clone 連結
git add .
git commit -m "提交資訊,不能為空"
git push origin master
git branch 分支
git checkout Dev
git clone -b Dev 連結

相關文章