如何从我最新的git提交中创建补丁?

时间:2012-02-22 13:58:23

标签: git patch

我正在寻找从最后一次提交创建补丁的神奇命令。

我的工作流程有时看起来像这样

vi some.txt
git add some.txt
git commit -m "some change"

现在我只想写

git create-patch-from-last-commit-to-file SOME-PATCH0001.patch

但是我应该把它放在那里而不是create-patch-from-last-commit-to-file

6 个答案:

答案 0 :(得分:281)

一般来说,

git format-patch -n HEAD^

(检查许多选项的帮助),虽然它真的用于邮寄它们。 对于单个提交只是

git show HEAD > some-patch0001.patch

会给你一个可用的补丁。

答案 1 :(得分:52)

从@Useless回答中,你也可以使用没有参数的常规表单进行最后一次提交,并将其放入一个文件中:

git format-patch HEAD^ --stdout > patchfile.patch

或者,当必须通过加倍来删除插入符号时,为Windows用户提供更清洁的功能:

git format-patch HEAD~1 --stdout > patchfile.patch

答案 2 :(得分:28)

另一种方式,如果具有该特定提交的提交ID, 你可以用,

git format-patch -1 {commit-id}

答案 3 :(得分:8)

你需要-p选项来git log:

git log -1 -p --pretty='%b'

答案 4 :(得分:4)

git format-patch -1

我的工作。

答案 5 :(得分:0)

例如,如果要在Github上的分支“ branch_name”中推送代码。该分支上的每个提交都将具有单独的URL。点击最新提交。

    在该网址末尾
  1. 添加 .patch 。因此,修改后的网址如下所示: https://github.com/xyz/lmn-ms/tree/branch_name.patch
  2. 然后复制并粘贴将分别放入步骤1中的全部内容 本地文件并使用.patch扩展名保存。
  3. 补丁已可以使用。