directory search
Guides gitattributes giteveryday gitglossary gitignore gitmodules gitrevisions gittutorial gitworkflows Administration git archive git bundle git clean git filter-branch git fsck git gc git instaweb git reflog Basic Snapshotting git add git commit git diff git mv git reset git rm git status Branching and Merging git branch git checkout git log git merge git mergetool git stash git tag Debugging git bisect git blame git grep Email git am git format-patch git request-pull git send-email External Systems git fast-import git svn Getting and Creating Projects git clone git init Git git annotate git archimport git bisect-lk2009 git check-attr git check-mailmap git check-ref-format git checkout-index git cherry git citool git column git credential git credential-cache git credential-store git cvsexportcommit git cvsimport git cvsserver git diff-files git diff-tree git difftool git fast-export git fetch-pack git fmt-merge-msg git get-tar-commit-id git gui git http-backend git http-fetch git http-push git imap-send git index-pack git interpret-trailers git ls-remote git ls-tree git mailinfo git mailsplit git merge-file git merge-index git merge-one-file git merge-tree git mktag git mktree git name-rev git notes git p4 git pack-objects git pack-redundant git pack-refs git parse-remote git patch-id git prune git prune-packed git quiltimport git receive-pack git remote-ext git remote-fd git remote-testgit git repack git replace git rerere git send-pack git sh-i18n git sh-setup git shell git show-branch git show-index git stripspace git unpack-file git unpack-objects git upload-archive git upload-pack git var git verify-commit git verify-tag git whatchanged git worktree Inspection and Comparison git describe git shortlog git show Miscellaneous api credentials api index gitcli gitcore tutorial gitcredentials gitcvs migration gitdiffcore githooks gitk gitnamespaces gitremote helpers gitrepository layout gitsubmodules gittutorial 2 gitweb gitweb.conf pack format User Manual Patching git apply git cherry-pick git rebase git revert Plumbing Commands git cat-file git check-ignore git commit-tree git count-objects git diff-index git for-each-ref git hash-object git ls-files git merge-base git read-tree git rev-list git rev-parse git show-ref git symbolic-ref git update-index git update-ref git verify-pack git write-tree Server Admin git daemon git update-server-info Setup and Config git git config git help Sharing and Updating Projects git fetch git pull git push git remote git submodule
characters

名称

git-imap-send  - 从 stdin 发送一组补丁到一个 IMAP 文件夹

概要

git imap-send [-v] [-q] [--[no-]curl]

描述

命令将生成的邮箱上传git format-patch到 IMAP 草稿文件夹。这允许在使用无法直接读取邮箱文件的邮件客户端时以其他邮件形式发送修补程序。该命令也适用于邮件中按顺序包含“From”,“Date”和“Subject”字段的任何常规邮箱。

典型用法如下所示:

git format-patch --signoff --stdout --attach origin | git imap-send

选项

-v   --verbose

详细。

-q   --quiet

安静。

--curl

使用 libcurl 与 IMAP 服务器进行通信,除非进行隧道传输。如果 Git 是在未设置 USE_CURL_FOR_IMAP_SEND 选项的情况下构建的,则会被忽略。

--no-curl

使用 git 自己的 IMAP 例程与 IMAP 服务器交谈,而不是使用 libcurl。如果 Git 是使用 NO_OPENSSL 选项设置的,则会被忽略。

组态

要使用该工具,必须将 imap.folder和imap.tunnel 或 imap.host 设置为适当的值。

变量

imap.folder

放入邮件的文件夹,通常是草稿文件夹。例如:“INBOX.Drafts”,“INBOX /草稿”或“Gmail /草稿”。需要。

imap.tunnel

用于设置到 IMAP 服务器的隧道的命令,通过该隧道将传输命令,而不是使用到服务器的直接网络连接。未设置 imap.host 时需要。

imap.host

标识服务器的 URL。使用imap://非安全连接前缀和一个imaps://用于安全连接的前缀。当设置 imap.tunnel 时忽略,但另有要求。

imap.user

登录到服务器时使用的用户名。

imap.pass

登录到服务器时使用的密码。

imap.port

在服务器上连接的整数端口号。对于 imap://主机,默认为143,对于 imaps://主机,默认为993。当设置 imap.tunnel 时忽略。

imap.sslverify

一个布尔值,用于启用/禁用 SSL / TLS 连接所使用的服务器证书的验证。默认是true。当设置 imap.tunnel 时忽略。

imap.preformattedHTML

发送补丁时启用/禁用 HTML编码的布尔值。一个 html 编码的补丁将被括在<pre>中,并且具有 text / html 的内容类型。具有讽刺意味的是,启用此选项会使 Thunderbird 以普通/文本格式=固定电子邮件发送补丁。默认是false

imap.authMethod

指定用 IMAP 服务器进行身份验证的身份验证方法。如果 Git 是使用 NO_CURL 选项构建的,或者如果您的 curl 版本早于7.34.0,或者您使用该--no-curl选项运行git-imap-send ,则唯一支持的方法是CRAM-MD5。如果未设置,则git imap-send使用基本的 IMAP 明文 LOGIN 命令。

示例

使用隧道模式:

[imap]
    folder = "INBOX.Drafts"
    tunnel = "ssh -q -C user@example.com /usr/bin/imapd ./Maildir 2> /dev/null"

使用直接模式:

[imap]
    folder = "INBOX.Drafts"
    host = imap://imap.example.com
    user = bob
    pass = p4ssw0rd

通过 SSL 使用直接模式:

[imap]
    folder = "INBOX.Drafts"
    host = imaps://imap.example.com
    user = bob
    pass = p4ssw0rd
    port = 123
    sslverify = false

示例

要使用 GMail 的 IMAP 界面提交补丁,首先编辑 〜/ .gitconfig 来指定您的帐户设置:

[imap]
        folder = "[Gmail]/Drafts"
        host = imaps://imap.gmail.com
        user = user@gmail.com
        port = 993
        sslverify = false

如果出现“文件夹不存在”的错误,您可能需要改为使用:folder =“Google Mail / Drafts”。

一旦提交准备好发送,运行以下命令:

$ git format-patch --cover-letter -M --stdout origin/master | git imap-send

只需确保在电子邮件客户端中禁用换行(GMail 的 Web 界面将包装行,无论如何,所以您需要使用真正的 IMAP 客户端)。

警告

您仍然有责任确保您的电子邮件程序发送的电子邮件符合您项目的标准。许多项目不喜欢要添加的补丁。某些邮件代理会以某种方式转换补丁(例如换行,将它们以 format = flowed 的方式发送),从而导致它们失败。如果你不检查这个,你会生气地嘲笑你。

Previous article: Next article: