git從登陸伺服器-拉代碼-編譯-比對送出
一、登陸
配置自己的使用者名和郵箱位址
二、拉取代碼
mkdir android-q-lxj 建立自己檔案夾
cd android-q-lxj 進入自己的檔案夾
ssh【項目位址】info 檢視倉庫項目清單
如 ssh [email protected] info
找到自己想拉取的項目,如amlogic/android-q
拷貝代碼 git clone [email protected]:amlogic/android-q
進入剛剛拉取的 android-q檔案夾
(附加)git clone [email protected]:app-repo-v2 儲存簽名檔案
三、開啟編譯
Android系統提供了相應指令用于編譯*(不熟悉可以百度搜尋m,mm,mmm編譯)*
首先需要在Android項目根目錄下配置環境:
source build/envsetup.sh 要確定目前根目錄下有envsetup.sh腳本檔案
lunch 或lunch 103E-user 選擇對應的工程
mmma:指定目錄下新增或删除檔案後,可以用mmma重新編譯。 // 未全編譯的情況系下,可以使用該指令單編譯子產品
如mmma vendor/sei/apps/TvGlobalKeyHandler -j16 選具體應用,和編譯線程,編譯具體apk
mmm:編譯指定路徑下的子產品,指定的路徑下面需要有Android.mk這個makefile檔案
mmm frameworks/base/ -j16 編譯frameworks -j16是特殊的選擇16線程
make 系統整編
四、送出代碼
git checkout atv 切換到另一個分支,如atv分支
git pull 拉取最新代碼
beyond Compare軟體 比對代碼
git status 檢視修改檔案
git diff 檢視具體修改内容
git add . 送出所有改動
git add [具體檔案路徑] 送出該檔案改動
git commit -m “[目标檔案夾] 修改描述” 如: git commit -m “[packages] Settings第一次修改”
将送出push到遠端版本庫(如有其他分支,請替換master)
$ git push origin master 最後确認無誤送出 ,慎重
五、打patch,送出的代碼,生成檔案 随時檢視
git format-patch 0811fc550d06c7a778925a9ba301c73d1881a3f2 -1 直接git format-patch -1也行
-1為單次送出的,-n為包含這次送出以及之前的幾次送出,依次生成.patch檔案
應用patch:
先檢查patch檔案:git apply --stat newpatch.patch
檢查能否應用成功:git apply --check newpatch.patch
打入patch git apply xxx.patch
也可以批量,也可以單個。 git apply ~/patch/patch/*.patch
六、其他分支相同送出
git branch 檢視已有分支
git checkout atv_dvb 切換到atv_dvb分支
git pull 更新該分支代碼
git status 檢視分支狀态
git log master 檢視之前master分支的曆史送出
git cherry-pick commitid值 如: git cherry-pick 0811fc550d06c7a778925a9ba301c73d1881a3f2
挑到其他分支.
七、回退之前送出并删除修改
git reset --hard {到後一個事件id}
如:git reset --hard d36d42764e7370bf93cd4f9eab26088ff82e4840
- 使用git log指令檢視所有的曆史版本,擷取某個曆史版本的id,假設查到曆史版本的id是139dcfaa558e3276b30b6b2e5cbbb9c00bbdca96。
- git reset --hard 139dcfaa558e3276b30b6b2e5cbbb9c00bbdca96
删除最後一次遠端送出 使用revert
git revert
git revert commitId 回退commitId 的送出
git push origin master 送出到master分支
八、檢視曆史送出
git log 檢視曆史送出
git show --raw 展示上一個送出的檔案清單
git show --raw (commitid) 展示commitid裡送出的檔案清單
git log --grep “XXX” 篩選
git log filename 檢視filename的曆史送出
跨分支展示送出 git show origin/atv (commitid) 展示atv分支送出 的commitid
git 更快的搜尋“對應内容”,可以搜尋多個檔案目錄
git grep -ni “netflix” frameworks/base/ packages/apps/ vendor/
更多Android系統和應用開發的讨論,歡迎加入我,個人微信号:Doraemon_student