MTK Android Git提取出兩個版本之間的差異文件並打包


git提取出兩個版本之間的差異文件並打包

首先你得知道版本之間的commit id 
git log –pretty=oneline

 $ git log --pretty=oneline
  • 1

這里寫圖片描述

差異文件並打包

git diff這個命令能比較兩個提交之間的差異,使用–name-only參數可以只顯示文件名。由於commit id 太長 一般復制前面7位 就可以了 例如:

$ git diff 61d2112 f3c0f99 --name-only //后續打包太麻煩 不采用
  • 1
  • 2

這里寫圖片描述
git diff列出兩個提交之間差異的文件

這個輸出結果非常有意思,就是差異文件的相對地址,不正好是壓縮命令的參數嗎?於是立馬使用壓縮命令

$ zip update.zip 所有的文件… 
就能成功打包了。只是這樣的話也太麻煩了吧,幸好linux有提供一個命令xargs能將前一個命令的輸出轉成另外一個命令的參數,按照這個思路就非常簡單了。

$ git diff 61d2112 f3c0f99 --name-only | xargs zip update.zip
  • 1

這里寫圖片描述

補充zip 打包解壓命令

linux zip命令的基本用法是: 
zip [參數] [打包后的文件名] [打包的目錄路徑]

linux zip命令參數列表: 
-a 將文件轉成ASCII模式 
-F 嘗試修復損壞的壓縮文件 
-h 顯示幫助界面 
-m 將文件壓縮之后,刪除源文件 
-n 特定字符串 不壓縮具有特定字尾字符串的文件 
-o 將壓縮文件內的所有文件的最新變動時間設為壓縮時候的時間 
-q 安靜模式,在壓縮的時候不顯示指令的執行過程 
-r 將指定的目錄下的所有子目錄以及文件一起處理 
-S 包含系統文件和隱含文件(S是大寫) 
-t 日期 把壓縮文件的最后修改日期設為指定的日期,日期格式為mmddyyyy

舉例:說個最常用的吧,打包/opt/abc目錄到/opt/abc.zip

# zip -r /opt/abc.zip /opt/abc/ //參數一般只要有-r

unzip命令的基本語法是:unzip [參數] zip文件 
簡單例子: 
把本目錄下的test.zip文件解壓:

unzip test.zip

參數列表: 
-l 列出壓縮文件所包含的內容 
-v 顯示詳細的執行過程


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM