检查错误
应用补丁时,可能会发生错误。
为了避免它们,我们建议我们在应用补丁之前检查错误,使用以下命令:
git apply --check file.patch
从提交生成补丁文件
要生成补丁文件,请使用 git format-patch 命令。
为给定的提交次数生成补丁文件
如果要为所选提交之前的给定提交数量创建补丁,则可以使用带有 -N 选项的 git format-patch(N 指定要为其创建补丁的提交数量):
git format-patch -N <sha1-commit-hash>
我们可以使用 HEAD 代替提交哈希,如下所示:
git format-patch -N HEAD
为给定的提交范围生成补丁文件
我们可以指定提交范围来为其创建补丁,而不是指定提交次数。
这是如何做到的:
git format-patch <first-commit-hash>^..<end-commit-hash>
要为多个提交创建单个补丁文件,我们应该将 --stdout > file.patch 添加到上述命令中。
git apply 命令
git apply 命令将补丁应用到文件或者暂存区。
读取提供的差异输出并将其应用于文件。
从存储库中的子目录运行时,目录外的修补路径将被忽略。
--index 选项将补丁添加到暂存区,而 --cached 选项仅将补丁添加到暂存区。
该命令仅将补丁应用于没有这些选项的文件,并且不需要它们在 git 存储库中。
查看补丁中更改的文件
要查看补丁文件中所做的更改,我们可以使用带有 --stat 选项的 git apply 命令,并提及补丁文件:
git apply --stat file.patch
应用补丁
最后,要应用补丁文件,我们应该运行以下命令:
git am < file.patch
补丁是一个文件,其中包含一个或者多个提交的更改。
它还包括提交的元数据,例如提交日期、提交消息等。
我们可以从提交中生成补丁,其他开发人员可以将其应用到他们的存储库中。
它通常用于某人没有写入权限但我们想进行他所做的更改。
git format-patch 命令
git format-patch 为每个 git commit 准备每个提交的一个文件中的补丁。
它的格式类似于 UNIX 邮箱格式。
命令的结果便于电子邮件提交或者与 git am 一起使用。