天天看點

Git從登陸伺服器-拉代碼-比對送出回退全過程一、登陸二、拉取代碼三、開啟編譯四、送出代碼五、打patch,送出的代碼,生成檔案 随時檢視六、其他分支相同送出七、回退之前送出并删除修改八、檢視曆史送出

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

  1. 使用git log指令檢視所有的曆史版本,擷取某個曆史版本的id,假設查到曆史版本的id是139dcfaa558e3276b30b6b2e5cbbb9c00bbdca96。
  2. 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

繼續閱讀