协慌网

登录 贡献 社区

为特定提交生成 git 补丁

我需要编写一个脚本,为 SHA1 提交号列表创建补丁。

我尝试使用git format-patch <the SHA1> ,但是从那个 SHA1 开始为每次提交生成一个补丁。在生成几百个补丁之后,我不得不杀死这个过程。

有没有办法只为特定的 SHA1 生成补丁?

答案

尝试:

git <a href="https://www.kernel.org/pub/software/scm/git/docs/git-format-patch.html" rel="noreferrer">format-patch</a> -1 <sha>

要么

git format-patch -1 HEAD

根据上面的文档链接, -1标志告诉 git 应该在补丁中包含多少次提交;

-

从最顶层的提交准备补丁。


使用以下命令应用修补程序:

git am < file.patch

要从特定 sha1 哈希中从最顶层提交生成修补程序:

git format-patch -<n> <SHA1>

头文件中的最后 10 个补丁在一个补丁文件中:

git format-patch -10 HEAD --stdout > 0001-last-10-commits.patch

假设您在提交 1 之后提交了 id 2,那么您将能够运行:

git diff 2 1 > mypatch.diff

其中 2 和 1 是 SHA 哈希。