筆者想製作一個工具,可以很快速的從git控制下的目錄中,找出所有有更改的文件,並且形成升級包,以便於到伺服器上的升級工作。
(我們需要將升級包copy到伺服器之後,直接將升級包的內容覆蓋,就可以完成升級)
以前這個升級包總是手動創建,很麻煩,尤其是如果文件比較分散的時候,更是如此。
大致思路:
1. 可以使用git diff --name-only 可以得到一個列表(這裡只顯示還沒有commit的檔案列表)
crontabs/php/create_data_into_sku_flowtype_storage.php
crontabs/php/cron中就包含了所有新建或修改的目錄和文件,只需要按照這個清單「抓藥「就好了
2. 根據這個文件中提示的信息,進行逐行分解,得到相應的路徑
crontabs/php/create_data_into_sku_flowtype_storage .php
然後,判斷這個資訊指定的父路徑(crontabs/php/)是否存在。
不存在,就依序創建。
再判斷這個 是否是目錄,如果是,則在目標路徑下增加相應的目錄(不要複製),
如果不是目錄(是文件),那麼就複製。
注意目錄一概不要複製。
另外,可以使用 git log --oneline 查看歷史
參考資料:
陳傑斌, 《git提取出兩個版本之間的差異文件並打包》, 2013-09-11, http://www.01happy.com /git-extract-different-files/