Git 補丁生成與應用
git format-patch 用法參考
git format-patch [(-o|--output-directory) <dir> | --stdout]
[ <since> | <revision range> ]
There are two ways to specify which commits to operate on.
A single commit, since, specifies that the commits leading to the tip of the current branch that are not in the history that leads to the since
Generic revision range expression (see “SPECIFYING REVISIONS” section in gitrevisions(7)) means the commits in the specified range.
The first rule takes precedence in the case of a single commmit. To apply the second rule, i.e., format everything since the beginning of history up until commmit
git format-patch 與 git diff 的功能比較
功能比較
使用 git format-patch
建立的補丁還將包含有關 commit(committer,date,commit message,…)的一些元資訊,並將包含二進位制資料的差異。 所有內容都將被格式化為一個郵件,以便它可以很容易地傳送。 接收它的人可以使用 git am
git apply
,因為它是一個簡單的 diff
的超級集。
用 git diff
填充的補丁將是一個簡單的 diff
與上下文(think diff -u )。 它也可以應用於 git apply
但不會重新建立元資料(因為它們不存在)。
總而言之, git format-patch
對傳輸 commit 是有用的,而 git diff
對於在兩個樹之間獲得差異很有用。
操作物件比較
git format-patch
用於生成不同 commit 的之間的差異。
git diff
除了生成不同 commit 的之間的差異,還可以生成:“commit 與 index”、“index 與工作區”及 “commit 與工作區”的差異。