2024年3月17日 星期日

取出CommitID A 與CommitID B之間有Commit進來那些檔案?

 情境:取出Release20240313(8a2e0cd)  與DEV(8a2e0cd )之間有Commit進來那些檔案?



git archive --format=zip --output=20240313.zip HEAD $(git diff-tree -r --name-only --diff-filter=ACMRT  28df24a 8a2e0cd )


GIT 差異檔案打包

差異檔是什麼呢?顧名思義就是跟上次有差異的檔案,意思就是這次才有改動的檔案。那要怎麼樣簡單取得差異檔案呢?來,上指令~~

git archive format=zip output=檔案名稱.zip HEAD $(git diff-tree -r name-only diff-filter=ACMRT commit_NEW commit_OLD)

diff-filter檔案狀態:

A = Added
C = Copied
M = Modified
R = Renamed
T = Changed

#打包最新整包程式
git archive format zip -o 檔案名稱.zip HEAD 打包最新整包程式為檔案名稱.zip

#看新舊commit之間的差異檔案有哪些
git diff-tree no-commit-id name-only -r commit新 commit舊

git diff-tree -r commit新 commit舊 (顯示commit)

git diff-tree name-only -r commit新 commit舊 (只顯示名稱)

因此組合起來 打包 + 差異檔案 如下

#commit舊 到 commit新 之間的差異檔案
git archive format=zip output=檔案名稱.zip HEAD $(git diff-tree -r name-only diff-filter=ACMRT commit新 commit舊)

#最新的和上一次commit的差異檔案
git archive format=zip output=檔案名稱.zip HEAD $(git diff-tree -r name-only diff-filter=ACMRT HEAD)

**注意!!

git-diff 這個差異檔案,會從目前本地端的檔案複製到打包的檔案中,不是從commit當時的檔案狀態複製喔!因此,要特別注意目前本地端端的檔案是不是你要複製的檔案**

https://stackoverflow.com/questions/4541300/export-only-modified-and-added-files-with-folder-structure-in-git

沒有留言:

張貼留言

分支 ( branch )應用情境筆記

分支 ( branch )應用情境筆記 最近在協助新版控機制導入,匯整一下收集到的分支 ( branch )應用情境