uTools-Manuals/docs/git/git credential.html
2019-04-08 23:22:26 +08:00

1 line
7.5 KiB
HTML
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<div class="c-markdown doc-markdown"><div class="doc-postil"><div class="c-markdown"><h2>名称</h2></div></div><div class="doc-postil"><div class="c-markdown"><p>git-credential  - 检索并存储用户凭证</p></div></div><div class="doc-postil"><div class="c-markdown"><h2>概要</h2></div></div><div class="doc-postil"><div class="c-markdown"><pre class="prism-token token language-javascript">git credential &lt;fill|approve|reject&gt;</pre></div></div><div class="doc-postil"><div class="c-markdown"><h2>描述</h2></div></div><div class="doc-postil"><div class="c-markdown"><p>Git 有一个内部接口用于存储和检索系统特定助手的凭证并提示用户输入用户名和密码。git-credential 命令将此接口公开给可能想要以与 Git 相同的方式检索,存储或提示凭据的脚本。这个脚本化接口的设计模拟了内部 C API; 有关这些概念的更多背景信息,请参阅 Git 凭证 API。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>git-credentialGIT-凭证)呈现命令行的“动作”选项(<code>fill</code><code>approve</code><code>reject</code>之一),并读取在 stdin 凭证描述(参见 INPUT / OUTPUT FORMAT</p></div></div><div class="doc-postil"><div class="c-markdown"><p>如果动作是<code>fill</code>git-credential 将尝试通过读取配置文件,联系任何已配置的凭证助手,或通过提示用户来将“用户名”和“密码”属性添加到描述中。然后将凭证说明的用户名和密码属性与已提供的属性一起打印到 stdout。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>如果动作是<code>approve</code>,则 git-credential 将把描述发送给任何配置的凭证助手,这些凭证助手可以存储该凭证供以后使用。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>如果操作是<code>reject</code>git-credential 将把描述发送给任何配置的凭证助手,这可能会擦除与描述匹配的任何存储的凭证。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>如果动作是<code>approve</code>或者<code>reject</code>,则不应该发布输出。</p></div></div><div class="doc-postil"><div class="c-markdown"><h2>典型的使用git credentialgit 凭证)</h2></div></div><div class="doc-postil"><div class="c-markdown"><p>使用 git-credential 的应用程序通常会使用<code>git credential</code>以下步骤:</p></div></div><div class="doc-postil"><div class="c-markdown"><p>1. 根据上下文生成凭证描述。例如,如果我们需要一个密码<code>https://example.com/foo.git</code>,我们可能会生成以下凭证描述(不要忘记最后一行的空行;它会告诉<code>git credential</code>应用程序完成了它提供的所有信息): protocol=https host=example.com path=foo.git</p></div></div><div class="doc-postil"><div class="c-markdown"><p>2. 请求 git-credential 为我们提供用于此说明的用户名和密码。这是通过运行完成的<code>git credential fill</code>将步骤1中的描述反馈到其标准输入。标准输出将生成完整的凭证说明包括凭证本身即登录名和密码如下所示</p></div></div><div class="doc-postil"><div class="c-markdown"><p>protocol=https host=example.com username=bob password=secr3t</p></div></div><div class="doc-postil"><div class="c-markdown"><p>在大多数情况下这意味着输入中给出的属性将在输出中重复但Git也可能会修改凭证描述例如<code>path</code>在协议为 HTTPs<code>credential.useHttpPath</code>为 false 时删除该属性。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>如果<code>git credential</code>知道密码,在返回<code>password=secr3t</code>之前,则此步骤可能没有涉及用户实际输入此密码(用户可能已输入密码来解锁钥匙串,或者,如果钥匙串已解锁,则没有用户交互)。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>1. 使用凭证例如使用步骤2中的用户名和密码访问URL并查看它是否被接受。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>2. 报告密码的成功或失败。如果凭证允许操作成功完成,则可以使用“批准”操作标记该操作,以告知<code>git credential</code>在其下一次调用中重用该操作。如果凭证在操作过程中被拒绝,请使用“拒绝”操作,以便<code>git credential</code>在下次调用时要求输入新密码。在任何一种情况下,<code>git credential</code>都应提供从步骤2获得的证书说明其中也包含步骤1中提供的证书</p></div></div><div class="doc-postil"><div class="c-markdown"><h2>输入/输出格式</h2></div></div><div class="doc-postil"><div class="c-markdown"><p><code>git credential</code>在其标准输入/输出中读取和/或写入(取决于所使用的动作)证书信息。该信息可以对应于<code>git credential</code>将获得登录/密码信息(例如主机,协议,路径)的密钥或者要获得的实际证书数据(登录/密码)。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>凭证分为一组命名属性,每行一个属性。每个属性由键值对指定,由<code>=</code>(等号)分隔,后跟换行符。密钥可能包含除<code>=</code>换行符或 NUL  以外的任何字节。该值可能包含除换行符或 NUL 以外的任何字节。在这两种情况下,所有字节都按原样处理(即,没有引用,并且不能用新行或 NUL 传送值。属性列表由空行或文件结束符终止。Git 了解以下属性:</p></div></div><div class="doc-postil"><div class="c-markdown"><p><code>protocol</code></p></div></div><div class="doc-postil"><div class="c-markdown"><p>证书将被使用的协议(例如,<code>https</code>)。</p></div></div><div class="doc-postil"><div class="c-markdown"><p><code>host</code></p></div></div><div class="doc-postil"><div class="c-markdown"><p>网络凭证的远程主机名。</p></div></div><div class="doc-postil"><div class="c-markdown"><p><code>path</code></p></div></div><div class="doc-postil"><div class="c-markdown"><p>将使用凭证的路径。例如,对于访问远程 https 存储库,这将成为服务器上存储库的路径。</p></div></div><div class="doc-postil"><div class="c-markdown"><p><code>username</code></p></div></div><div class="doc-postil"><div class="c-markdown"><p>凭证的用户名,如果我们已经有一个(例如,来自用户的 URL 或先前运行的助手)。</p></div></div><div class="doc-postil"><div class="c-markdown"><p><code>password</code></p></div></div><div class="doc-postil"><div class="c-markdown"><p>证书的密码,如果我们要求它被存储。</p></div></div><div class="doc-postil"><div class="c-markdown"><p><code>url</code></p></div></div><div class="doc-postil"><div class="c-markdown"><p>当读取这个特殊的属性时<code>git credential</code>,这个值被解析为一个 URL 并且被看作是它的组成部分被读取了(例如,它的<code>url=https://example.com</code>行为就像是<code>protocol=https</code><code>host=example.com</code>被提供的一样。这可以帮助呼叫者避免自己解析URL。请注意URL 中缺少的任何组件(例如,上述示例中没有用户名)将被设置为空; 如果要提供 URL 并覆盖某些属性,请首先提供 URL 属性,然后再提供任何覆盖。</p></div></div></div>