git根據標簽或者commit進行導出改動的文件


是通過 git archivegit diff 兩個命令一起使用實現的

#  develop 分支
git archive --format=zip -o ./update.zip develop $(git diff --name-only d1c51cc e033003)
# HEAD 當前分支
git archive --format=zip -o ./update.zip HEAD $(git diff --name-only --diff-filter=AMR d1c51cc e033003)

git archive 使用的參數說明:

--format=<fmt>::

歸檔結果的文件格式: tar 或者 zip。如果這個參數沒有提供並且輸出文件名稱已經指定,格式會盡可能從文件名稱中推測出來(e.g. 填入 "foo.zip" 使輸出格式為 zip 格式)。否則輸出格式是 tar。

-o <file>::
--output=<file>::

將歸檔文件寫入到 <file> 中,以此替代標准輸出設備。

-l::
--list::
列出所有有效的格式。

-v::
--verbose::

匯報進度到標准錯誤輸出設備。

develop分支和 HEAD 目前我使用的效果是一樣的,因為HEAD的分支的sha1 commit和develop分支的sha1 commit是一樣的。

git diff 使用的參數說明:

--name-only::

只顯示被修改的文件名稱

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

只選擇文件被 添加(A),復制(C),刪除(D),修改(M),重命令(R)。

舊提交sha1或者標簽: d1c51cc 或者 0.0.1
新提交sha1或者標簽: e033003 或者 0.0.2

References


免責聲明!

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



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