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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章