上面的網頁其實已經有詳細的介紹
問題是當 檔案非常大 使用的環境變數 output 會爆掉 所以檔案太多時會失敗
稍微修改了一下 分享給有需要的 BAT檔 (使用 7Z 壓縮)
使用方法 : GitGetPatch SHA1_ID PatchName
使用後 會在原目錄下建立 _Patch\PatchName 資料夾
裡面會有 MOD 跟 ORG 方便用 Beyond Compare 比較
也會生成 7z 的壓縮檔, 7z安裝路徑不是預設的話 自己改一下 BAT 的配置就好
執行畫面 |
會有一個資料夾跟壓縮好的檔案 |
Mod 跟 ORG 方便用 Beyond Compare 來比較 |
怕日後參考的資料遺失 節錄重點如下
git diff-tree -r --no-commit-id --name-only --diff-filter=ACMRT HEAD
for /f "usebackq tokens=*" %A in (`git diff-tree -r --no-commit-id --name-only --diff-filter=ACMRT HEAD`) do echo FA|xcopy "%~fA" "G:\git_changed_files\%A"
檔案名稱:git-export-changes.cmd 檔案路徑:C:\Program Files (x86)\Git\cmd
@ECHO OFF setlocal enabledelayedexpansion SET zipfile=update.zip IF "%1"=="" GOTO Help IF NOT "%2"=="" SET zipfile=%2 set output= for /f "delims=" %%a in ('git diff --name-only %1^^') do ( set output=!output! "%%a" ) git archive -o %zipfile% HEAD %output% endlocal GOTO Exit :Help ECHO. ECHO 用法: git-export-changes ^<ref^> ^<filename.zip^> ECHO. ECHO 輸入 ^<ref^> 的時候,可用 HEAD,該程式會自動跟前一個版本做比較 ECHO 若沒輸入 ^<filename.zip^> 的時候,預設為 updates.zip 並輸出在當前目錄 ECHO. PAUSE :Exit
使用範例:在 Git 工作目錄下,輸入 git-export-changes.cmd HEAD export-updated-files.zip
沒有留言:
張貼留言