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

沒有留言:

張貼留言

branching-strategy CASE1

以下是供不同協同作業型態客製,重新定義各分支 目的:達到不同需求不同上線時間,可進行開發與測試,需求上線可調整。 Master 分支、Develop 分支為主要分支: 不會刪除、不允許刪除,若有發生誤刪、遺失、受污染無法救回: Develop 分支 重新從Master開出分支 依...