Git做代碼增量發布的重要用法 - --diff-filter


你以為有 bash git diff --name-only 就夠了,NO!

對於PHP開發的系統來說,增量發布,一般只需部署新增的文件和有變動的文件,但很多時候,文件是刪除的或重構成其它文件名或重構到其它目錄的,而diff的結果中默認會包含所有變動。

同時,對於增量來說,還有新增的目錄。

git diff --diff-filter 可以過濾幾種不同的變化:

--diff-filter=[(A|C|D|M|R|T|U|X|B)…[*]]

Added (A), Copied (C), Deleted (D), Modified (M), Renamed (R), have their type (i.e. regular file, symlink, submodule, …) changed (T), are Unmerged (U), are Unknown (X), or have had their pairing Broken (B).

只選擇那些添加 (A), 賦值 (C), 刪除 (D), 修改 (M), 重命名 (R)的文件, 它們的類型(如 普通文件, 符號鏈接, 子模塊, …) 是否改變 (T), 是否未合並 (U), 是未知 (X), 或它們的對崩潰(B). 任何過濾字符的組合(包括none)均可使用。當組合中包括All或none,如果任一文件匹配了其他選項,就選擇了所有路徑。如果沒有文件匹配其他選項,什么都不做。

Diff現在支持接受小寫字母參數,含義為展示所有非指定類型的變化。

而加上

git diff 608e120 4abe32e --name-only | xargs zip update.zip

就可以用於解決服務器端增量創建目錄的問題。


免責聲明!

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



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