A3.9 邮件
最后更新于:2022-04-02 01:36:30
# 邮件
很多 Git 项目,包括 Git 本身,基本是通过邮件列表来维护的。 从方便地生成邮件补丁到从一个邮箱中应用这些补丁,Git 都有工具来让这些操作变得简单。
## git apply
`git apply` 命令应用一个通过 `git diff` 或者甚至使用 GNU diff 命令创建的补丁。 它跟补丁命令做了差不多的工作,但还是有一些小小的差别。
我们在 [应用来自邮件的补丁](http://git-scm.com/book/zh/v2/1-distributed-git/_patches_from_email) 一节中演示了它的使用及什么环境下你可能会用到它。
## git am
`git am` 命令用来应用来自邮箱的补丁。特别是那些被 mbox 格式化过的。 这对于通过邮件接受补丁并将他们轻松地应用到你的项目中很有用。
我们在 [使用 am 命令应用补丁](http://git-scm.com/book/zh/v2/1-distributed-git/_git_am) 命令中提到了它的用法及工作流,包括使用 `--resolved`、`-i` 及`-3` 选项。
我们在 [电子邮件工作流钩子](http://git-scm.com/book/zh/v2/1-customizing-git/_email_hooks) 也提到了几条 hooks,你可以用来辅助与 `git am` 相关工作流。
在 [邮件通知](http://git-scm.com/book/zh/v2/1-github/_email_notifications) 一节中我们也将用此命令来应用 格式化的 GitHub的推送请求的变更。
## git format-patch
`git format-patch` 命令用来以 mbox 的格式来生成一系列的补丁以便你可以发送到一个邮件列表中。
我们在 [通过邮件的公开项目](http://git-scm.com/book/zh/v2/1-distributed-git/_project_over_email) 一节中研究了一个使用 `git format-patch` 工具为一个项目做贡献的示例。
## git imap-send
`git imap-send` 将一个由 `git format-patch` 生成的邮箱上传至 IMAP 草稿文件夹。 我们在[通过邮件的公开项目](http://git-scm.com/book/zh/v2/1-distributed-git/_project_over_email) 一节中见过一个通过使用 `git imap-send` 工具向一个项目发送补丁进行贡献的例子。
## git send-email
`git send-mail` 命令用来通过邮件发送那些使用 `git format-patch` 生成的补丁。
我们在 [通过邮件的公开项目](http://git-scm.com/book/zh/v2/1-distributed-git/_project_over_email) 一节中研究了一个使用 `git send-email` 工具发送补丁来为一个项目做贡献的示例。
## git request-pull
`git request-pull` 命令只是简单的用来生成一个可通过邮件发送给某个人的示例信息体。 如果你在公共服务器上有一个分支,并且想让别人知道如何集成这些变更,而不用通过邮件发送补丁,你就可以执行此命令的输出发送给这个你想拉取变更的人。
我们在 [派生的公开项目](http://git-scm.com/book/zh/v2/1-distributed-git/_public_project) 一节中演示了如何使用 `git request-pull` 来生成一个推送消息。
';