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 顯示詳細的執行過程