2019-04-08 23:22:26 +08:00

14 lines
67 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>Name</h2></div></div><div class="doc-postil"><div class="c-markdown"><p>git  - 迟钝的内容跟踪器</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 [--version] [--help] [-C &lt;path&gt;] [-c &lt;name&gt;=&lt;value&gt;]    [--exec-path[=&lt;path&gt;]] [--html-path] [--man-path] [--info-path]    [-p|--paginate|--no-pager] [--no-replace-objects] [--bare]    [--git-dir=&lt;path&gt;] [--work-tree=&lt;path&gt;] [--namespace=&lt;name&gt;]    [--super-prefix=&lt;path&gt;]    &lt;command&gt; [&lt;args&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 是一个快速,可扩展的分布式修订控制系统,具有异常丰富的命令集,可提供高级操作和对内部的全面访问。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>请参阅 gittutorial [7] 开始,然后参阅 giteveryday [7] 以获取有用的最小命令集。Git 用户手册有更深入的介绍。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>掌握了基本概念之后,您可以回到此页面来了解 Git 提供的命令。你可以通过“git help command”了解更多关于单个 Git 命令的信息。gitcli [7]手册页为您提供了命令行命令语法的概述。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>格式化和超链接的最新 Git 文档可以在这里查看<code>https://git.github.io/htmldocs/git.html</code></p></div></div><div class="doc-postil"><div class="c-markdown"><h2>选项</h2></div></div><div class="doc-postil"><div class="c-markdown"><p>--version</p></div></div><div class="doc-postil"><div class="c-markdown"><p>打印该<code>git</code>程序来自的 Git 套件版本。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>--help</p></div></div><div class="doc-postil"><div class="c-markdown"><p>打印大纲和最常用命令的列表。如果选择<code>--all</code><code>-a</code>给出,则打印所有可用的命令。如果一个 Git 命令被命名了,这个选项将会弹出该命令的手册页。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>其他选项可用于控制手册页的显示方式。请参阅 git-help [1] 以获取更多信息,因为它们<code>git --help ...</code>被内部转换为<code>git help ...</code></p></div></div><div class="doc-postil"><div class="c-markdown"><p>-C &lt;path&gt;</p></div></div><div class="doc-postil"><div class="c-markdown"><p>运行就好像 git 是在<code>&lt;path&gt;</code>当前工作目录中开始的。当<code>-C</code>给出多个选项时,每个随后的非绝对<code>-C &lt;path&gt;</code>都相对于前面的解释<code>-C &lt;path&gt;</code></p></div></div><div class="doc-postil"><div class="c-markdown"><p>此选项会影响预期的路径名的选项一样<code>--git-dir</code>,并<code>--work-tree</code>在他们的路径名的解释,将相对于所造成的工作目录进行<code>-C</code>选择。例如,以下调用是等同的:</p></div></div><div class="doc-postil"><div class="c-markdown"><pre class="prism-token token language-javascript">git --git-dir=a.git --work-tree=b -C c status
git --git-dir=c/a.git --work-tree=c/b status</pre></div></div><div class="doc-postil"><div class="c-markdown"><p>-c &lt;name&gt;=&lt;value&gt;</p></div></div><div class="doc-postil"><div class="c-markdown"><p>将配置参数传递给命令。给定的值将覆盖配置文件中的值。预期
&lt;name&gt; 的格式与列出的格式相同<code>git config</code>(以小圆点分隔的子键)。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>请注意,忽略<code>=</code>in <code>git -c foo.bar ...</code>是允许的,并设置<code>foo.bar</code>为布尔值 true就像<code>[foo]bar</code>在配置文件中那样)。包括等号但有一个空值(如<code>git -c foo.bar= ...</code>)设置<code>foo.bar</code><code>git config --bool</code>将转换为空字符串<code>false</code></p></div></div><div class="doc-postil"><div class="c-markdown"><p>--exec-path=&lt;path&gt;</p></div></div><div class="doc-postil"><div class="c-markdown"><p>安装核心 Git 程序的路径。这也可以通过设置 GIT_EXEC_PATH
环境变量来控制。如果没有给出路径,<code>git</code>将打印当前设置,然后退出。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>--html-path</p></div></div><div class="doc-postil"><div class="c-markdown"><p>打印路径,不加斜杠,其中安装了 Git 的 HTML 文档并退出。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>--man-path</p></div></div><div class="doc-postil"><div class="c-markdown"><p>打印<code>man(1)</code>此版本 Git 手册页的 manpath请参阅参考资料并退出。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>--info-path</p></div></div><div class="doc-postil"><div class="c-markdown"><p>打印记录此版本 Git 的 Info 文件的安装路径并退出。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>-p   --paginate</p></div></div><div class="doc-postil"><div class="c-markdown"><p><code>less</code>如果标准输出是终端,则将所有输出管道(或者如果设置,则为 $ PAGER )。这会覆盖<code>pager.&lt;cmd&gt;</code>配置选项(请参阅下面的“配置机制”部分)。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>--no-pager</p></div></div><div class="doc-postil"><div class="c-markdown"><p>不要将 Git 输出传送到寻呼机。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>--git-dir=&lt;path&gt;</p></div></div><div class="doc-postil"><div class="c-markdown"><p>设置存储库的路径。这也可以通过设置<code>GIT_DIR</code>环境变量来控制。它可以是当前工作目录的绝对路径或相对路径。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>--work-tree=&lt;path&gt;</p></div></div><div class="doc-postil"><div class="c-markdown"><p>设置工作树的路径。它可以是相对于当前工作目录的绝对路径或路径。这也可以通过设置 GIT_WORK_TREE 环境变量和
core.worktree 配置变量来控制(有关更详细的讨论,请参阅
git-config [1] 中的 core.worktree )。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>--namespace=&lt;path&gt;</p></div></div><div class="doc-postil"><div class="c-markdown"><p>设置 Git 名称空间。有关更多详细信息,请参阅 gitnamespaces [7] 。相当于设置<code>GIT_NAMESPACE</code>环境变量。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>--super-prefix=&lt;path&gt;</p></div></div><div class="doc-postil"><div class="c-markdown"><p>目前仅供内部使用。设置一个前缀,它提供从存储库上方到其根目录的路径。一个用途是给出调用它的超级项目的子模块上下文。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>--bare</p></div></div><div class="doc-postil"><div class="c-markdown"><p>将存储库视为裸存储库。如果未设置 GIT_DIR 环境,则将其设置为当前工作目录。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>--no-replace-objects</p></div></div><div class="doc-postil"><div class="c-markdown"><p>不要使用替换参考来替换 Git 对象。有关更多信息,请参见 git-replace [1] 。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>--literal-pathspecs</p></div></div><div class="doc-postil"><div class="c-markdown"><p>字面上处理 pathspecs即没有 globbing没有 pathspec magic。这相当于将<code>GIT_LITERAL_PATHSPECS</code>环境变量设置为<code>1</code></p></div></div><div class="doc-postil"><div class="c-markdown"><p>--glob-pathspecs</p></div></div><div class="doc-postil"><div class="c-markdown"><p>将“glob”魔法添加到所有 pathspec。这相当于将<code>GIT_GLOB_PATHSPECS</code>环境变量设置为<code>1</code>。禁用单个路径规范上的 globbing 可以使用 pathspec magic “literal”来完成</p></div></div><div class="doc-postil"><div class="c-markdown"><p>--noglob-pathspecs</p></div></div><div class="doc-postil"><div class="c-markdown"><p>将“文字”魔法添加到所有 pathspec。这相当于将<code>GIT_NOGLOB_PATHSPECS</code>环境变量设置为<code>1</code>。可以使用
pathspec magic“glob”来启用单个 pathspecs 上的
globbing</p></div></div><div class="doc-postil"><div class="c-markdown"><p>--icase-pathspecs</p></div></div><div class="doc-postil"><div class="c-markdown"><p>将“icase”魔法添加到所有 pathspec。这相当于将<code>GIT_ICASE_PATHSPECS</code>环境变量设置为<code>1</code></p></div></div><div class="doc-postil"><div class="c-markdown"><h2>Git commands</h2></div></div><div class="doc-postil"><div class="c-markdown"><p>我们将 Git 分为高级(“瓷器”)命令和低级别(“管道”)命令。</p></div></div><div class="doc-postil"><div class="c-markdown"><h2>High-level commands (porcelain)</h2></div></div><div class="doc-postil"><div class="c-markdown"><p>我们将 porcelain 命令分成主要命令和一些辅助用户实用程序。</p></div></div><div class="doc-postil"><div class="c-markdown"><h3>主要的 <strong>porcelain </strong>命令</h3></div></div><div class="doc-postil"><div class="c-markdown"><p>git-add[1]</p></div></div><div class="doc-postil"><div class="c-markdown"><p>将文件内容添加到索引</p></div></div><div class="doc-postil"><div class="c-markdown"><p>git-am[1]</p></div></div><div class="doc-postil"><div class="c-markdown"><p>从邮箱中应用一系列修补程序</p></div></div><div class="doc-postil"><div class="c-markdown"><p>git-archive[1]</p></div></div><div class="doc-postil"><div class="c-markdown"><p>从命名树创建文件的存档</p></div></div><div class="doc-postil"><div class="c-markdown"><p>git-bisect[1]</p></div></div><div class="doc-postil"><div class="c-markdown"><p>使用二分查找找到引入错误的提交</p></div></div><div class="doc-postil"><div class="c-markdown"><p>git-branch[1]</p></div></div><div class="doc-postil"><div class="c-markdown"><p>列出,创建或删除分支</p></div></div><div class="doc-postil"><div class="c-markdown"><p>git-bundle[1]</p></div></div><div class="doc-postil"><div class="c-markdown"><p>通过归档移动对象和引用</p></div></div><div class="doc-postil"><div class="c-markdown"><p>git-checkout[1]</p></div></div><div class="doc-postil"><div class="c-markdown"><p>切换分支或恢复工作树文件</p></div></div><div class="doc-postil"><div class="c-markdown"><p>git-cherry-pick[1]</p></div></div><div class="doc-postil"><div class="c-markdown"><p>应用一些现有提交引入的更改</p></div></div><div class="doc-postil"><div class="c-markdown"><p>git-citool[1]</p></div></div><div class="doc-postil"><div class="c-markdown"><p>git-commit 的图形替代</p></div></div><div class="doc-postil"><div class="c-markdown"><p>git-clean[1]</p></div></div><div class="doc-postil"><div class="c-markdown"><p>从工作树中删除未跟踪的文件</p></div></div><div class="doc-postil"><div class="c-markdown"><p>git-clone[1]</p></div></div><div class="doc-postil"><div class="c-markdown"><p>将存储库克隆到新目录中</p></div></div><div class="doc-postil"><div class="c-markdown"><p>git-commit[1]</p></div></div><div class="doc-postil"><div class="c-markdown"><p>记录对存储库的更改</p></div></div><div class="doc-postil"><div class="c-markdown"><p>git-describe[1]</p></div></div><div class="doc-postil"><div class="c-markdown"><p>描述一个提交,使用它可以访问的最近的标签</p></div></div><div class="doc-postil"><div class="c-markdown"><p>git-diff[1]</p></div></div><div class="doc-postil"><div class="c-markdown"><p>在commitscommit 和 working tree 等之间显示更改</p></div></div><div class="doc-postil"><div class="c-markdown"><p>git-fetch[1]</p></div></div><div class="doc-postil"><div class="c-markdown"><p>从另一个存储库下载对象和参考</p></div></div><div class="doc-postil"><div class="c-markdown"><p>git-format-patch[1]</p></div></div><div class="doc-postil"><div class="c-markdown"><p>准备电子邮件提交 patches</p></div></div><div class="doc-postil"><div class="c-markdown"><p>git-gc[1]</p></div></div><div class="doc-postil"><div class="c-markdown"><p>清理不必要的文件并优化本地存储库</p></div></div><div class="doc-postil"><div class="c-markdown"><p>git-grep[1]</p></div></div><div class="doc-postil"><div class="c-markdown"><p>打印符合图案的线条</p></div></div><div class="doc-postil"><div class="c-markdown"><p>git-gui[1]</p></div></div><div class="doc-postil"><div class="c-markdown"><p>Git 的便携式图形界面</p></div></div><div class="doc-postil"><div class="c-markdown"><p>git-init[1]</p></div></div><div class="doc-postil"><div class="c-markdown"><p>创建一个空的 Git 存储库或重新初始化现有的存储库</p></div></div><div class="doc-postil"><div class="c-markdown"><p>gitk[1]</p></div></div><div class="doc-postil"><div class="c-markdown"><p>Git 存储库浏览器</p></div></div><div class="doc-postil"><div class="c-markdown"><p>git-log[1]</p></div></div><div class="doc-postil"><div class="c-markdown"><p>显示提交日志</p></div></div><div class="doc-postil"><div class="c-markdown"><p>git-merge[1]</p></div></div><div class="doc-postil"><div class="c-markdown"><p>集合两个或更多发展历史</p></div></div><div class="doc-postil"><div class="c-markdown"><p>git-mv[1]</p></div></div><div class="doc-postil"><div class="c-markdown"><p>移动或重命名文件,目录或符号链接</p></div></div><div class="doc-postil"><div class="c-markdown"><p>git-notes[1]</p></div></div><div class="doc-postil"><div class="c-markdown"><p>添加或检查对象注释</p></div></div><div class="doc-postil"><div class="c-markdown"><p>git-pull[1]</p></div></div><div class="doc-postil"><div class="c-markdown"><p>从另一个存储库或本地分支中获取并与其集成</p></div></div><div class="doc-postil"><div class="c-markdown"><p>git-push[1]</p></div></div><div class="doc-postil"><div class="c-markdown"><p>更新远程引用以及关联的对象</p></div></div><div class="doc-postil"><div class="c-markdown"><p>git-rebase[1]</p></div></div><div class="doc-postil"><div class="c-markdown"><p>重新申请在另一个基本技巧之上提交</p></div></div><div class="doc-postil"><div class="c-markdown"><p>git-reset[1]</p></div></div><div class="doc-postil"><div class="c-markdown"><p>将当前 HEAD 重置为指定状态</p></div></div><div class="doc-postil"><div class="c-markdown"><p>git-revert[1]</p></div></div><div class="doc-postil"><div class="c-markdown"><p>恢复一些现有的提交</p></div></div><div class="doc-postil"><div class="c-markdown"><p>git-rm[1]</p></div></div><div class="doc-postil"><div class="c-markdown"><p>从工作树和索引中删除文件</p></div></div><div class="doc-postil"><div class="c-markdown"><p>git-shortlog[1]</p></div></div><div class="doc-postil"><div class="c-markdown"><p>总结<code>git log</code>输出</p></div></div><div class="doc-postil"><div class="c-markdown"><p>git-show[1]</p></div></div><div class="doc-postil"><div class="c-markdown"><p>显示各种类型的对象</p></div></div><div class="doc-postil"><div class="c-markdown"><p>git-stash[1]</p></div></div><div class="doc-postil"><div class="c-markdown"><p>将变化存储在不完美的工作目录中</p></div></div><div class="doc-postil"><div class="c-markdown"><p>git-status[1]</p></div></div><div class="doc-postil"><div class="c-markdown"><p>显示工作树的状态</p></div></div><div class="doc-postil"><div class="c-markdown"><p>git-submodule[1]</p></div></div><div class="doc-postil"><div class="c-markdown"><p>初始化,更新或检查子模块</p></div></div><div class="doc-postil"><div class="c-markdown"><p>git-tag[1]</p></div></div><div class="doc-postil"><div class="c-markdown"><p>创建,列出,删除或验证使用 GPG 签名的标签对象</p></div></div><div class="doc-postil"><div class="c-markdown"><p>git-worktree[1]</p></div></div><div class="doc-postil"><div class="c-markdown"><p>管理多个工作树</p></div></div><div class="doc-postil"><div class="c-markdown"><h3>辅助命令</h3></div></div><div class="doc-postil"><div class="c-markdown"><p>机器人:</p></div></div><div class="doc-postil"><div class="c-markdown"><p>git-config[1]</p></div></div><div class="doc-postil"><div class="c-markdown"><p>获取并设置存储库或全局选项</p></div></div><div class="doc-postil"><div class="c-markdown"><p>git-fast-export[1]</p></div></div><div class="doc-postil"><div class="c-markdown"><p>Git 数据导出器</p></div></div><div class="doc-postil"><div class="c-markdown"><p>git-fast-import[1]</p></div></div><div class="doc-postil"><div class="c-markdown"><p>适用于快速 Git 数据导入器的后端</p></div></div><div class="doc-postil"><div class="c-markdown"><p>git-filter-branch[1]</p></div></div><div class="doc-postil"><div class="c-markdown"><p>重写分支</p></div></div><div class="doc-postil"><div class="c-markdown"><p>git-mergetool[1]</p></div></div><div class="doc-postil"><div class="c-markdown"><p>运行合并冲突解决工具来解决合并冲突</p></div></div><div class="doc-postil"><div class="c-markdown"><p>git-pack-refs[1]</p></div></div><div class="doc-postil"><div class="c-markdown"><p>打包首部和标签以实现有效的存储库访问</p></div></div><div class="doc-postil"><div class="c-markdown"><p>git-prune[1]</p></div></div><div class="doc-postil"><div class="c-markdown"><p>修改对象数据库中的所有不可达对象</p></div></div><div class="doc-postil"><div class="c-markdown"><p>git-reflog[1]</p></div></div><div class="doc-postil"><div class="c-markdown"><p>管理 reflog 信息</p></div></div><div class="doc-postil"><div class="c-markdown"><p>git-remote[1]</p></div></div><div class="doc-postil"><div class="c-markdown"><p>管理一组已跟踪的存储库</p></div></div><div class="doc-postil"><div class="c-markdown"><p>git-repack[1]</p></div></div><div class="doc-postil"><div class="c-markdown"><p>将解包的对象打包到存储库中</p></div></div><div class="doc-postil"><div class="c-markdown"><p>git-replace[1]</p></div></div><div class="doc-postil"><div class="c-markdown"><p>创建,列出,删除参考替换对象</p></div></div><div class="doc-postil"><div class="c-markdown"><p>读写器:</p></div></div><div class="doc-postil"><div class="c-markdown"><p>git-annotate[1]</p></div></div><div class="doc-postil"><div class="c-markdown"><p>用提交信息注释文件行</p></div></div><div class="doc-postil"><div class="c-markdown"><p>git-blame[1]</p></div></div><div class="doc-postil"><div class="c-markdown"><p>显示修订版本和作者上次修改文件的每一行</p></div></div><div class="doc-postil"><div class="c-markdown"><p>git-cherry[1]</p></div></div><div class="doc-postil"><div class="c-markdown"><p>查找尚未应用于上游的提交</p></div></div><div class="doc-postil"><div class="c-markdown"><p>git-count-objects[1]</p></div></div><div class="doc-postil"><div class="c-markdown"><p>计算未包装的对象数量及其磁盘消耗量</p></div></div><div class="doc-postil"><div class="c-markdown"><p>git-difftool[1]</p></div></div><div class="doc-postil"><div class="c-markdown"><p>使用常见差异工具显示更改</p></div></div><div class="doc-postil"><div class="c-markdown"><p>git-fsck[1]</p></div></div><div class="doc-postil"><div class="c-markdown"><p>验证数据库中对象的连通性和有效性</p></div></div><div class="doc-postil"><div class="c-markdown"><p>git-get-tar-commit-id[1]</p></div></div><div class="doc-postil"><div class="c-markdown"><p>从使用 git-archive 创建的存档中提取提交 ID</p></div></div><div class="doc-postil"><div class="c-markdown"><p>git-help[1]</p></div></div><div class="doc-postil"><div class="c-markdown"><p>显示关于 Git 的帮助信息</p></div></div><div class="doc-postil"><div class="c-markdown"><p>git-instaweb[1]</p></div></div><div class="doc-postil"><div class="c-markdown"><p>在 gitweb 中即时浏览您的工作存储库</p></div></div><div class="doc-postil"><div class="c-markdown"><p>git-merge-tree[1]</p></div></div><div class="doc-postil"><div class="c-markdown"><p>无需触摸索引即可显示三路合并</p></div></div><div class="doc-postil"><div class="c-markdown"><p>git-rerere[1]</p></div></div><div class="doc-postil"><div class="c-markdown"><p>重复使用冲突合并的记录分辨率</p></div></div><div class="doc-postil"><div class="c-markdown"><p>git-rev-parse[1]</p></div></div><div class="doc-postil"><div class="c-markdown"><p>选取并按摩参数</p></div></div><div class="doc-postil"><div class="c-markdown"><p>git-show-branch[1]</p></div></div><div class="doc-postil"><div class="c-markdown"><p>显示分支和他们的提交</p></div></div><div class="doc-postil"><div class="c-markdown"><p>git-verify-commit[1]</p></div></div><div class="doc-postil"><div class="c-markdown"><p>检查提交的 GPG 签名</p></div></div><div class="doc-postil"><div class="c-markdown"><p>git-verify-tag[1]</p></div></div><div class="doc-postil"><div class="c-markdown"><p>检查标签的GPG签名</p></div></div><div class="doc-postil"><div class="c-markdown"><p>gitweb[1]</p></div></div><div class="doc-postil"><div class="c-markdown"><p>Git Web 界面Git 仓库的前端)</p></div></div><div class="doc-postil"><div class="c-markdown"><p>git-whatchanged[1]</p></div></div><div class="doc-postil"><div class="c-markdown"><p>显示每个提交引入的差异日志</p></div></div><div class="doc-postil"><div class="c-markdown"><h3>与他人互动</h3></div></div><div class="doc-postil"><div class="c-markdown"><p>这些命令将通过电子邮件补丁与外国 SCM 和其他人进行交互。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>git-archimport[1]</p></div></div><div class="doc-postil"><div class="c-markdown"><p>将 Arch 存储库导入到 Git 中</p></div></div><div class="doc-postil"><div class="c-markdown"><p>git-cvsexportcommit[1]</p></div></div><div class="doc-postil"><div class="c-markdown"><p>将单个提交导出到 CVS 签出</p></div></div><div class="doc-postil"><div class="c-markdown"><p>git-cvsimport[1]</p></div></div><div class="doc-postil"><div class="c-markdown"><p>将您的数据从另一个人们常常不喜欢的 SCM 中拯救出来</p></div></div><div class="doc-postil"><div class="c-markdown"><p>git-cvsserver[1]</p></div></div><div class="doc-postil"><div class="c-markdown"><p>Git 的 CVS 服务器模拟器</p></div></div><div class="doc-postil"><div class="c-markdown"><p>git-imap-send[1]</p></div></div><div class="doc-postil"><div class="c-markdown"><p>从 stdin 将一组补丁发送到 IMAP 文件夹</p></div></div><div class="doc-postil"><div class="c-markdown"><p>git-p4[1]</p></div></div><div class="doc-postil"><div class="c-markdown"><p>从 Perforce 存储库导入和提交</p></div></div><div class="doc-postil"><div class="c-markdown"><p>git-quiltimport[1]</p></div></div><div class="doc-postil"><div class="c-markdown"><p>将一个被套补丁集应用到当前分支上</p></div></div><div class="doc-postil"><div class="c-markdown"><p>git-request-pull[1]</p></div></div><div class="doc-postil"><div class="c-markdown"><p>生成待定更改的摘要</p></div></div><div class="doc-postil"><div class="c-markdown"><p>git-send-email[1]</p></div></div><div class="doc-postil"><div class="c-markdown"><p>以电子邮件的形式发送一组修补程序</p></div></div><div class="doc-postil"><div class="c-markdown"><p>git-svn[1]</p></div></div><div class="doc-postil"><div class="c-markdown"><p>Subversion 版本库和 Git 之间的双向操作</p></div></div><div class="doc-postil"><div class="c-markdown"><h2>低级命令(管道)</h2></div></div><div class="doc-postil"><div class="c-markdown"><p>虽然 Git 包含自己的瓷器层,但其低级命令足以支持替代瓷器的开发。这些 porcelains 的开发人员可能从阅读 git-update-index [1] 和 git-read-tree [1] 开始。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>这些低级命令的接口(输入,输出,选项集和语义)比 Porcelain 级命令要稳定得多因为这些命令主要用于脚本使用。另一方面Porcelain 命令的界面可能会发生变化,以改善最终用户体验。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>以下描述将低级命令划分为操纵对象(在存储库,索引和工作树中),查询和比较对象的命令以及在存储库之间移动对象和引用的命令。</p></div></div><div class="doc-postil"><div class="c-markdown"><h3>操作命令</h3></div></div><div class="doc-postil"><div class="c-markdown"><p>git-apply[1]</p></div></div><div class="doc-postil"><div class="c-markdown"><p>将修补程序应用于文件和/或索引</p></div></div><div class="doc-postil"><div class="c-markdown"><p>git-checkout-index[1]</p></div></div><div class="doc-postil"><div class="c-markdown"><p>将索引中的文件复制到工作树中</p></div></div><div class="doc-postil"><div class="c-markdown"><p>git-commit-tree[1]</p></div></div><div class="doc-postil"><div class="c-markdown"><p>创建一个新的提交对象</p></div></div><div class="doc-postil"><div class="c-markdown"><p>git-hash-object[1]</p></div></div><div class="doc-postil"><div class="c-markdown"><p>计算对象 ID 并可选择从文件创建一个 blob</p></div></div><div class="doc-postil"><div class="c-markdown"><p>git-index-pack[1]</p></div></div><div class="doc-postil"><div class="c-markdown"><p>为现有打包归档生成包索引文件</p></div></div><div class="doc-postil"><div class="c-markdown"><p>git-merge-file[1]</p></div></div><div class="doc-postil"><div class="c-markdown"><p>运行三路文件合并</p></div></div><div class="doc-postil"><div class="c-markdown"><p>git-merge-index[1]</p></div></div><div class="doc-postil"><div class="c-markdown"><p>为需要合并的文件运行合并</p></div></div><div class="doc-postil"><div class="c-markdown"><p>git-mktag[1]</p></div></div><div class="doc-postil"><div class="c-markdown"><p>创建一个标签对象</p></div></div><div class="doc-postil"><div class="c-markdown"><p>git-mktree[1]</p></div></div><div class="doc-postil"><div class="c-markdown"><p>从 ls-tree 格式的文本构建一个树对象</p></div></div><div class="doc-postil"><div class="c-markdown"><p>git-pack-objects[1]</p></div></div><div class="doc-postil"><div class="c-markdown"><p>创建对象的打包存档</p></div></div><div class="doc-postil"><div class="c-markdown"><p>git-prune-packed[1]</p></div></div><div class="doc-postil"><div class="c-markdown"><p>删除已经在包文件中的额外对象</p></div></div><div class="doc-postil"><div class="c-markdown"><p>git-read-tree[1]</p></div></div><div class="doc-postil"><div class="c-markdown"><p>将树信息读入索引</p></div></div><div class="doc-postil"><div class="c-markdown"><p>git-symbolic-ref[1]</p></div></div><div class="doc-postil"><div class="c-markdown"><p>阅读,修改和删除符号参考</p></div></div><div class="doc-postil"><div class="c-markdown"><p>git-unpack-objects[1]</p></div></div><div class="doc-postil"><div class="c-markdown"><p>从打包的压缩文件中解压缩对象</p></div></div><div class="doc-postil"><div class="c-markdown"><p>git-update-index[1]</p></div></div><div class="doc-postil"><div class="c-markdown"><p>将工作树中的文件内容注册到索引</p></div></div><div class="doc-postil"><div class="c-markdown"><p>git-update-ref[1]</p></div></div><div class="doc-postil"><div class="c-markdown"><p>安全地更新存储在 ref 中的对象名称</p></div></div><div class="doc-postil"><div class="c-markdown"><p>git-write-tree[1]</p></div></div><div class="doc-postil"><div class="c-markdown"><p>从当前索引创建一个树对象</p></div></div><div class="doc-postil"><div class="c-markdown"><h3>询问命令</h3></div></div><div class="doc-postil"><div class="c-markdown"><p>git-cat-file[1]</p></div></div><div class="doc-postil"><div class="c-markdown"><p>为存储库对象提供内容或类型和大小信息</p></div></div><div class="doc-postil"><div class="c-markdown"><p>git-diff-files[1]</p></div></div><div class="doc-postil"><div class="c-markdown"><p>比较工作树中的文件和索引</p></div></div><div class="doc-postil"><div class="c-markdown"><p>git-diff-index[1]</p></div></div><div class="doc-postil"><div class="c-markdown"><p>将树与工作树或索引进行比较</p></div></div><div class="doc-postil"><div class="c-markdown"><p>git-diff-tree[1]</p></div></div><div class="doc-postil"><div class="c-markdown"><p>比较通过两个树对象找到的斑点的内容和模式</p></div></div><div class="doc-postil"><div class="c-markdown"><p>git-for-each-ref[1]</p></div></div><div class="doc-postil"><div class="c-markdown"><p>输出每个参考信息</p></div></div><div class="doc-postil"><div class="c-markdown"><p>git-ls-files[1]</p></div></div><div class="doc-postil"><div class="c-markdown"><p>显示有关索引和工作树中文件的信息</p></div></div><div class="doc-postil"><div class="c-markdown"><p>git-ls-remote[1]</p></div></div><div class="doc-postil"><div class="c-markdown"><p>在远程存储库中列出引用</p></div></div><div class="doc-postil"><div class="c-markdown"><p>git-ls-tree[1]</p></div></div><div class="doc-postil"><div class="c-markdown"><p>列出树对象的内容</p></div></div><div class="doc-postil"><div class="c-markdown"><p>git-merge-base[1]</p></div></div><div class="doc-postil"><div class="c-markdown"><p>为合并找到尽可能好的共同上代</p></div></div><div class="doc-postil"><div class="c-markdown"><p>git-name-rev[1]</p></div></div><div class="doc-postil"><div class="c-markdown"><p>查找给定转速的符号名称</p></div></div><div class="doc-postil"><div class="c-markdown"><p>git-pack-redundant[1]</p></div></div><div class="doc-postil"><div class="c-markdown"><p>找到多余的包文件</p></div></div><div class="doc-postil"><div class="c-markdown"><p>git-rev-list[1]</p></div></div><div class="doc-postil"><div class="c-markdown"><p>按时间顺序列出提交对象</p></div></div><div class="doc-postil"><div class="c-markdown"><p>git-show-index[1]</p></div></div><div class="doc-postil"><div class="c-markdown"><p>显示打包归档索引</p></div></div><div class="doc-postil"><div class="c-markdown"><p>git-show-ref[1]</p></div></div><div class="doc-postil"><div class="c-markdown"><p>在本地存储库中列出引用</p></div></div><div class="doc-postil"><div class="c-markdown"><p>git-unpack-file[1]</p></div></div><div class="doc-postil"><div class="c-markdown"><p>用 blob 的内容创建一个临时文件</p></div></div><div class="doc-postil"><div class="c-markdown"><p>git-var[1]</p></div></div><div class="doc-postil"><div class="c-markdown"><p>显示一个 Git 逻辑变量</p></div></div><div class="doc-postil"><div class="c-markdown"><p>git-verify-pack[1]</p></div></div><div class="doc-postil"><div class="c-markdown"><p>验证打包的 Git 存档文件</p></div></div><div class="doc-postil"><div class="c-markdown"><p>通常,询问命令不会触摸工作树中的文件。</p></div></div><div class="doc-postil"><div class="c-markdown"><h3>同步存储库</h3></div></div><div class="doc-postil"><div class="c-markdown"><p>git-daemon[1]</p></div></div><div class="doc-postil"><div class="c-markdown"><p>一个非常简单的 Git 仓库服务器</p></div></div><div class="doc-postil"><div class="c-markdown"><p>git-fetch-pack[1]</p></div></div><div class="doc-postil"><div class="c-markdown"><p>从另一个存储库接收丢失的对象</p></div></div><div class="doc-postil"><div class="c-markdown"><p>git-http-backend[1]</p></div></div><div class="doc-postil"><div class="c-markdown"><p>服务器端通过 HTTP 实现 Git</p></div></div><div class="doc-postil"><div class="c-markdown"><p>git-send-pack[1]</p></div></div><div class="doc-postil"><div class="c-markdown"><p>将对象通过 Git 协议推送到另一个存储库</p></div></div><div class="doc-postil"><div class="c-markdown"><p>git-update-server-info[1]</p></div></div><div class="doc-postil"><div class="c-markdown"><p>更新辅助信息文件以帮助迟钝的服务器</p></div></div><div class="doc-postil"><div class="c-markdown"><p>以下是上述使用的帮助程序命令; 最终用户通常不会直接使用它们。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>git-http-fetch[1]</p></div></div><div class="doc-postil"><div class="c-markdown"><p>通过 HTTP 从远程 Git 存储库下载</p></div></div><div class="doc-postil"><div class="c-markdown"><p>git-http-push[1]</p></div></div><div class="doc-postil"><div class="c-markdown"><p>通过 HTTP / DAV 将对象推送到另一个存储库</p></div></div><div class="doc-postil"><div class="c-markdown"><p>git-parse-remote[1]</p></div></div><div class="doc-postil"><div class="c-markdown"><p>帮助解析远程存储库访问参数的例程</p></div></div><div class="doc-postil"><div class="c-markdown"><p>git-receive-pack[1]</p></div></div><div class="doc-postil"><div class="c-markdown"><p>接收推入存储库的内容</p></div></div><div class="doc-postil"><div class="c-markdown"><p>git-shell[1]</p></div></div><div class="doc-postil"><div class="c-markdown"><p>仅 Git-only SSH 访问的受限登录 shell</p></div></div><div class="doc-postil"><div class="c-markdown"><p>git-upload-archive[1]</p></div></div><div class="doc-postil"><div class="c-markdown"><p>将档案发送回 git-archive</p></div></div><div class="doc-postil"><div class="c-markdown"><p>git-upload-pack[1]</p></div></div><div class="doc-postil"><div class="c-markdown"><p>将对象发送回 git-fetch-pack</p></div></div><div class="doc-postil"><div class="c-markdown"><h3>内部帮助程序命令</h3></div></div><div class="doc-postil"><div class="c-markdown"><p>这些是其他命令使用的内部帮助程序命令; 最终用户通常不会直接使用它们。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>git-check-attr[1]</p></div></div><div class="doc-postil"><div class="c-markdown"><p>显示 gitattributes 信息</p></div></div><div class="doc-postil"><div class="c-markdown"><p>git-check-ignore[1]</p></div></div><div class="doc-postil"><div class="c-markdown"><p>调试 gitignore /排除 文件</p></div></div><div class="doc-postil"><div class="c-markdown"><p>git-check-mailmap[1]</p></div></div><div class="doc-postil"><div class="c-markdown"><p>显示联系人的规范名称和电子邮件地址</p></div></div><div class="doc-postil"><div class="c-markdown"><p>git-check-ref-format[1]</p></div></div><div class="doc-postil"><div class="c-markdown"><p>确保参考名称格式正确</p></div></div><div class="doc-postil"><div class="c-markdown"><p>git-column[1]</p></div></div><div class="doc-postil"><div class="c-markdown"><p>以列的形式显示数据</p></div></div><div class="doc-postil"><div class="c-markdown"><p>git-credential[1]</p></div></div><div class="doc-postil"><div class="c-markdown"><p>检索并存储用户凭证</p></div></div><div class="doc-postil"><div class="c-markdown"><p>git-credential-cache[1]</p></div></div><div class="doc-postil"><div class="c-markdown"><p>助手临时将密码存储在内存中</p></div></div><div class="doc-postil"><div class="c-markdown"><p>git-credential-store[1]</p></div></div><div class="doc-postil"><div class="c-markdown"><p>助手将凭据存储在磁盘上</p></div></div><div class="doc-postil"><div class="c-markdown"><p>git-fmt-merge-msg[1]</p></div></div><div class="doc-postil"><div class="c-markdown"><p>生成合并提交消息</p></div></div><div class="doc-postil"><div class="c-markdown"><p>git-interpret-trailers[1]</p></div></div><div class="doc-postil"><div class="c-markdown"><p>帮助将结构化信息添加到提交消息</p></div></div><div class="doc-postil"><div class="c-markdown"><p>git-mailinfo[1]</p></div></div><div class="doc-postil"><div class="c-markdown"><p>从单个电子邮件中提取补丁和作者身份</p></div></div><div class="doc-postil"><div class="c-markdown"><p>git-mailsplit[1]</p></div></div><div class="doc-postil"><div class="c-markdown"><p>简单的 UNIX mbox 分离器程序</p></div></div><div class="doc-postil"><div class="c-markdown"><p>git-merge-one-file[1]</p></div></div><div class="doc-postil"><div class="c-markdown"><p>与 git-merge-index 一起使用的标准帮助程序</p></div></div><div class="doc-postil"><div class="c-markdown"><p>git-patch-id[1]</p></div></div><div class="doc-postil"><div class="c-markdown"><p>计算补丁的唯一 ID</p></div></div><div class="doc-postil"><div class="c-markdown"><p>git-sh-i18n[1]</p></div></div><div class="doc-postil"><div class="c-markdown"><p>Git 的 shell 脚本的 i18n 设置代码</p></div></div><div class="doc-postil"><div class="c-markdown"><p>git-sh-setup[1]</p></div></div><div class="doc-postil"><div class="c-markdown"><p>常见的 Git shell 脚本设置代码</p></div></div><div class="doc-postil"><div class="c-markdown"><p>git-stripspace[1]</p></div></div><div class="doc-postil"><div class="c-markdown"><p>删除不必要的空白</p></div></div><div class="doc-postil"><div class="c-markdown"><h2>配置机制</h2></div></div><div class="doc-postil"><div class="c-markdown"><p>Git 使用简单的文本格式来存储每个存储库和每个用户的定制。这样的配置文件可能如下所示:</p></div></div><div class="doc-postil"><div class="c-markdown"><pre class="prism-token token language-javascript">#
# A '#' or ';' character indicates a comment.#; core variables[core]        ; Don't trust file modes
        filemode = false; user identity[user]
        name = "Junio C Hamano"
        email = "gitster@pobox.com"</pre></div></div><div class="doc-postil"><div class="c-markdown"><p>从配置文件读取各种命令并相应地调整其操作。有关配置机制的列表和更多详细信息,请参阅 git-config [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>&lt;object&gt;</p></div></div><div class="doc-postil"><div class="c-markdown"><p>指示任何类型对象的对象名称。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>&lt;blob&gt;</p></div></div><div class="doc-postil"><div class="c-markdown"><p>指示一个 blob 对象名称。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>&lt;tree&gt;</p></div></div><div class="doc-postil"><div class="c-markdown"><p>指示树对象名称。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>&lt;commit&gt;</p></div></div><div class="doc-postil"><div class="c-markdown"><p>指示提交对象名称。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>&lt;tree-ish&gt;</p></div></div><div class="doc-postil"><div class="c-markdown"><p>指示树,提交或标记对象名称。接受 &lt;tree-ish&gt; 参数的命令最终希望对 &lt;tree&gt; 对象进行操作,但是会自动将 &lt;commit&gt;&lt;tag&gt; 对象的 dereference 指向 &lt;tree&gt;</p></div></div><div class="doc-postil"><div class="c-markdown"><p>&lt;commit-ish&gt;</p></div></div><div class="doc-postil"><div class="c-markdown"><p>指示提交或标记对象名称。采用 &lt;commit-ish&gt; 参数的命令最终希望对 &lt;commit&gt; 对象进行操作,但是会自动对指向 &lt;commit&gt;&lt;tag&gt; 对象取消引用。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>&lt;type&gt;</p></div></div><div class="doc-postil"><div class="c-markdown"><p>表示需要一个对象类型。目前的一个:<code>blob</code><code>tree</code><code>commit</code>,或<code>tag</code></p></div></div><div class="doc-postil"><div class="c-markdown"><p>&lt;file&gt;</p></div></div><div class="doc-postil"><div class="c-markdown"><p>指示文件名 - 几乎总是相对于树结构的根<code>GIT_INDEX_FILE</code>描述。</p></div></div><div class="doc-postil"><div class="c-markdown"><h2>符号标识符</h2></div></div><div class="doc-postil"><div class="c-markdown"><p>任何接受任何 &lt;object&gt; 的 Git 命令都可以使用以下符号表示法:</p></div></div><div class="doc-postil"><div class="c-markdown"><p>HEAD</p></div></div><div class="doc-postil"><div class="c-markdown"><p>表示当前分支的 head 。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>&lt;tag&gt;</p></div></div><div class="doc-postil"><div class="c-markdown"><p>一个有效的标签<code>name</code>(即<code>refs/tags/&lt;tag&gt;</code>参考)。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>&lt;head&gt;</p></div></div><div class="doc-postil"><div class="c-markdown"><p>一个有效的 head <code>name</code>(即<code>refs/heads/&lt;head&gt;</code>参考)。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>有关拼写对象名称的更完整列表,请参阅 gitrevisions [7] 中的“指定修订”部分。</p></div></div><div class="doc-postil"><div class="c-markdown"><h2>文件/目录结构</h2></div></div><div class="doc-postil"><div class="c-markdown"><p>请参阅 gitrepository-layout [5] 文档。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>阅读 githooks [5] 了解每个 hook 的更多细节。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>更高层次的 SCM 可能会提供和管理附加信息<code>$GIT_DIR</code></p></div></div><div class="doc-postil"><div class="c-markdown"><h2>术语</h2></div></div><div class="doc-postil"><div class="c-markdown"><p>请参阅 gitglossary [7] 。</p></div></div><div class="doc-postil"><div class="c-markdown"><h2>环境变量</h2></div></div><div class="doc-postil"><div class="c-markdown"><p>各种 Git 命令使用以下环境变量:</p></div></div><div class="doc-postil"><div class="c-markdown"><h3>Git 库</h3></div></div><div class="doc-postil"><div class="c-markdown"><p>这些环境变量适用于<code>all</code>核心 Git 命令。铌:值得注意的是,他们可能会被 SCMS 使用/覆盖,因此如果使用外部前端,请注意。</p></div></div><div class="doc-postil"><div class="c-markdown"><p><code>GIT_INDEX_FILE</code></p></div></div><div class="doc-postil"><div class="c-markdown"><p>该环境允许指定备用索引文件。如果未指定,<code>$GIT_DIR/index</code>则使用默认值。</p></div></div><div class="doc-postil"><div class="c-markdown"><p><code>GIT_INDEX_VERSION</code></p></div></div><div class="doc-postil"><div class="c-markdown"><p>此环境变量允许为新存储库指定索引版本。它不会影响现有的索引文件。默认使用索引文件版本2或3。有关更多信息请参阅 git-update-index [1] 。</p></div></div><div class="doc-postil"><div class="c-markdown"><p><code>GIT_OBJECT_DIRECTORY</code></p></div></div><div class="doc-postil"><div class="c-markdown"><p>如果通过此环境变量指定了对象存储目录,则在下面创建 sha1 目录 - 否则使用默认<code>$GIT_DIR/objects</code>目录。</p></div></div><div class="doc-postil"><div class="c-markdown"><p><code>GIT_ALTERNATE_OBJECT_DIRECTORIES</code></p></div></div><div class="doc-postil"><div class="c-markdown"><p>由于 Git 对象的不变性质,旧对象可以归档到共享的只读目录中。这个变量指定了一个“:”分隔的(在 Windows “;” 分隔的) Git 对象目录列表,可以用来搜索 Git 对象。新对象不会写入这些目录。</p></div></div><div class="doc-postil"><div class="c-markdown"><pre class="prism-token token language-javascript">Entries that begin with `"` (double-quote) will be interpretedas C-style quoted paths, removing leading and trailing
double-quotes and respecting backslash escapes. E.g., the value`"path-with-\"-and-:-in-it":vanilla-path` has two paths:`path-with-"-and-:-in-it` and `vanilla-path`.</pre></div></div><div class="doc-postil"><div class="c-markdown"><p><code>GIT_DIR</code></p></div></div><div class="doc-postil"><div class="c-markdown"><p>如果<code>GIT_DIR</code>设置了环境变量,那么它将指定一个要使用的路径,而不是指定<code>.git</code>存储库基础的缺省路径。该<code>--git-dir</code>命令行选项还设置这个值。</p></div></div><div class="doc-postil"><div class="c-markdown"><p><code>GIT_WORK_TREE</code></p></div></div><div class="doc-postil"><div class="c-markdown"><p>将路径设置为工作树的根目录。这也可以通过<code>--work-tree</code>命令行选项和 core.worktree 配置变量来控制。</p></div></div><div class="doc-postil"><div class="c-markdown"><p><code>GIT_NAMESPACE</code></p></div></div><div class="doc-postil"><div class="c-markdown"><p>设置 Git 名称空间; 有关详细信息,请参阅 gitnamespaces [7] 。该<code>--namespace</code>命令行选项还设置这个值。</p></div></div><div class="doc-postil"><div class="c-markdown"><p><code>GIT_CEILING_DIRECTORIES</code></p></div></div><div class="doc-postil"><div class="c-markdown"><p>这应该是以冒号分隔的绝对路径列表。如果设置了,那么当查找存储库目录时(这对于排除慢速加载网络目录很有用),它是 Git 不应该查找的目录列表。它不会排除当前工作目录或在命令行或环境中设置的 GIT_DIR 。通常Git 必须读取此列表中的条目并解析可能存在的任何符号链接,以便将它们与当前目录进行比较。但是,如果访问速度很慢,则可以向列表中添加一个空条目,以告知 Git 后续条目不是符号链接并且不需要解析; 例如<code>GIT_CEILING_DIRECTORIES=/maybe/symlink::/very/slow/non/symlink</code></p></div></div><div class="doc-postil"><div class="c-markdown"><p><code>GIT_DISCOVERY_ACROSS_FILESYSTEM</code></p></div></div><div class="doc-postil"><div class="c-markdown"><p>当在没有“.git”存储库目录的目录中运行时Git 会尝试在父目录中找到这样一个目录以查找工作树的顶部,但默认情况下它不会跨越文件系统边界。这个环境变量可以设置为 true 来告诉 Git 不要停在文件系统边界。就像这样<code>GIT_CEILING_DIRECTORIES</code>,这不会影响通过<code>GIT_DIR</code>命令行或通过命令行设置的显式存储库目录。</p></div></div><div class="doc-postil"><div class="c-markdown"><p><code>GIT_COMMON_DIR</code></p></div></div><div class="doc-postil"><div class="c-markdown"><p>如果将此变量设置为路径,则通常位于 $ GIT_DIR 中的非工作文件文件将取自此路径。HEAD 或索引等工作特定的文件来自 $ GIT_DIR 。有关详细信息,请参阅 gitrepository-layout [5] 和 git-worktree [1] 。此变量的优先级低于其他路径变量,如 GIT_INDEX_FILEGIT_OBJECT_DIRECTORY ...</p></div></div><div class="doc-postil"><div class="c-markdown"><h3>Git 提交</h3></div></div><div class="doc-postil"><div class="c-markdown"><p><code>GIT_AUTHOR_NAME</code>   <code>GIT_AUTHOR_EMAIL</code>   <code>GIT_AUTHOR_DATE</code>   <code>GIT_COMMITTER_NAME</code>   <code>GIT_COMMITTER_EMAIL</code>   <code>GIT_COMMITTER_DATE</code>   <em style="font-style: italic;">EMAIL</em></p></div></div><div class="doc-postil"><div class="c-markdown"><p>see git-commit-tree[1]</p></div></div><div class="doc-postil"><div class="c-markdown"><h3>Git Diffs</h3></div></div><div class="doc-postil"><div class="c-markdown"><p><code>GIT_DIFF_OPTS</code></p></div></div><div class="doc-postil"><div class="c-markdown"><p>只有有效的设置是 “--unified = ??” 或 “-u ??” 设置创建统一差异时显示的上下文行数。这优先于在 Git diff 命令行上传递的任何 “-U” 或 “--unified” 选项值。</p></div></div><div class="doc-postil"><div class="c-markdown"><p><code>GIT_EXTERNAL_DIFF</code></p></div></div><div class="doc-postil"><div class="c-markdown"><p>当设置环境变量时<code>GIT_EXTERNAL_DIFF</code>,将调用由其命名的程序,而不是上述的差异调用。对于添加,删除或修改的路径,将<code>GIT_EXTERNAL_DIFF</code>使用7个参数调用</p></div></div><div class="doc-postil"><div class="c-markdown"><pre class="prism-token token language-javascript">path old-file old-hex old-mode new-file new-hex new-mode</pre></div></div><div class="doc-postil"><div class="c-markdown"><p>哪里:</p></div></div><div class="doc-postil"><div class="c-markdown"><p>&lt;old|new&gt;-file</p></div></div><div class="doc-postil"><div class="c-markdown"><p>是 GIT_EXTERNAL_DIFF 可用于读取 &lt;old | new&gt; 的内容的文件,</p></div></div><div class="doc-postil"><div class="c-markdown"><p>&lt;old|new&gt;-hex</p></div></div><div class="doc-postil"><div class="c-markdown"><p>是 40-hexdigit SHA-1 散列,</p></div></div><div class="doc-postil"><div class="c-markdown"><p>&lt;old|new&gt;-mode</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>new-file</code>在 “git-diff-files” 中),<code>/dev/null</code>(例如,<code>old-file</code>当添加新文件时)或临时文件(例如<code>old-file</code>在索引中)。<code>GIT_EXTERNAL_DIFF</code>不应该担心取消临时文件的链接 - <code>GIT_EXTERNAL_DIFF</code>退出时会将其删除。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>对于未合并的路径,<code>GIT_EXTERNAL_DIFF</code>使用1参数调用 &lt;path&gt;</p></div></div><div class="doc-postil"><div class="c-markdown"><p>为每个路径<code>GIT_EXTERNAL_DIFF</code>调用两个环境变量,<code>GIT_DIFF_PATH_COUNTER</code><code>GIT_DIFF_PATH_TOTAL</code>进行设置。</p></div></div><div class="doc-postil"><div class="c-markdown"><p><code>GIT_DIFF_PATH_COUNTER</code></p></div></div><div class="doc-postil"><div class="c-markdown"><p>对于每个路径基于1的计数器都加1。</p></div></div><div class="doc-postil"><div class="c-markdown"><p><code>GIT_DIFF_PATH_TOTAL</code></p></div></div><div class="doc-postil"><div class="c-markdown"><p>路径的总数。</p></div></div><div class="doc-postil"><div class="c-markdown"><h3>其他</h3></div></div><div class="doc-postil"><div class="c-markdown"><p><code>GIT_MERGE_VERBOSITY</code></p></div></div><div class="doc-postil"><div class="c-markdown"><p>一个数字,用于控制递归合并策略所显示的输出量。重写 merge.verbosity。见 git-merge [1]</p></div></div><div class="doc-postil"><div class="c-markdown"><p><code>GIT_PAGER</code></p></div></div><div class="doc-postil"><div class="c-markdown"><p>这个环境变量覆盖<code>$PAGER</code>。如果它设置为空字符串或值“cat”Git 将不会启动寻呼机。另请参阅<code>core.pager</code> git-config [1] 中的选项。</p></div></div><div class="doc-postil"><div class="c-markdown"><p><code>GIT_EDITOR</code></p></div></div><div class="doc-postil"><div class="c-markdown"><p>这个环境变量覆盖<code>$EDITOR</code><code>$VISUAL</code>。当在交互模式下,编辑器将被启动时,它被几个 Git 命令使用。另请参阅 git-var [1] 和<code>core.editor</code> git-config [1] 中的选项。</p></div></div><div class="doc-postil"><div class="c-markdown"><p><code>GIT_SSH</code>   <code>GIT_SSH_COMMAND</code></p></div></div><div class="doc-postil"><div class="c-markdown"><p>如果这些环境变量的设置,那么<code>git fetch</code><code>git push</code>将使用指定的命令,而不是<code>ssh</code>当他们需要连接到远程系统。该命令将只有两个或四个参数:(<code>username@host</code>或者仅仅<code>host</code>)来自 URL 和 shell 命令,以便在远程系统上执行,可选地,前面的<code>-p</code>(字面意思)和<code>port</code> URL 指定的内容不是默认的 SSH 港口。</p></div></div><div class="doc-postil"><div class="c-markdown"><p><code>$GIT_SSH_COMMAND</code>优先于<code>$GIT_SSH</code>,并且由 shell 解释,这允许包括额外的参数。<code>$GIT_SSH</code>另一方面必须是程序的路径(如果需要额外的参数,它可以是包装程序的外壳脚本)。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>通常情况下,通过个人<code>.ssh/config</code>文件配置任何所需的选项比较容易。有关更多详细信息,请参阅您的 ssh 文档。</p></div></div><div class="doc-postil"><div class="c-markdown"><p><code>GIT_SSH_VARIANT</code></p></div></div><div class="doc-postil"><div class="c-markdown"><p>如果这个环境变量设置,它将覆盖 Git 的自动检测是否<code>GIT_SSH</code>/ <code>GIT_SSH_COMMAND</code>/ <code>core.sshCommand</code>参考的 OpenSSH plink 或 TortoisePlink。该变量覆盖了<code>ssh.variant</code>用于相同目的的配置设置。</p></div></div><div class="doc-postil"><div class="c-markdown"><p><code>GIT_ASKPASS</code></p></div></div><div class="doc-postil"><div class="c-markdown"><p>如果设置了此环境变量那么需要获取密码或密码例如用于HTTP或IMAP身份验证的 Git 命令将使用适当的提示作为命令行参数调用该程序,并从其 STDOUT 读取密码。另请参阅<code>core.askPass</code> git-config [1] 中的选项。</p></div></div><div class="doc-postil"><div class="c-markdown"><p><code>GIT_TERMINAL_PROMPT</code></p></div></div><div class="doc-postil"><div class="c-markdown"><p>如果此环境变量设置为<code>0</code>则git不会在终端上提示例如请求 HTTP 身份验证时)。</p></div></div><div class="doc-postil"><div class="c-markdown"><p><code>GIT_CONFIG_NOSYSTEM</code></p></div></div><div class="doc-postil"><div class="c-markdown"><p>是否跳过从系统范围<code>$(prefix)/etc/gitconfig</code>文件读取设置。此环境变量可以搭配一起<code>$HOME</code>,并<code>$XDG_CONFIG_HOME</code>为挑剔的脚本来创建一个可预测的环境,也可以暂时将其设置为避免使用 buggy <code>/etc/gitconfig</code>文件,而等待有人具有足够的权限来修复它。</p></div></div><div class="doc-postil"><div class="c-markdown"><p><code>GIT_FLUSH</code></p></div></div><div class="doc-postil"><div class="c-markdown"><p>如果该环境变量被设置为“1”则命令比如<code>git blame</code>(在增量模式下),<code>git rev-list</code> <code>git log</code> <code>git check-attr</code><code>git check-ignore</code> 将迫使输出流的一个齐平的每个记录已经刷新之后。如果此变量设置为“0”则这些命令的输出将使用完全缓冲的 I / O 完成。如果这个环境变量没有设置Git
会根据标准输出是否被重定向到文件来选择缓冲或面向记录的刷新。</p></div></div><div class="doc-postil"><div class="c-markdown"><p><code>GIT_TRACE</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>如果此变量设置为“1”“2”或“true”比较不区分大小写则跟踪消息将会被打印到 stderr。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>如果变量设置为大于2且小于10的整数值严格那么 Git 会将此值解释为打开的文件描述符,并尝试将跟踪消息写入此文件描述符。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>或者,如果变量设置为绝对路径(以<code>/</code>字符开头Git 会将其解释为文件路径,并尝试将跟踪消息写入其中。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>取消设置变量或将其设置为空“0”或“false”不区分大小写将禁用跟踪消息。</p></div></div><div class="doc-postil"><div class="c-markdown"><p><code>GIT_TRACE_PACK_ACCESS</code></p></div></div><div class="doc-postil"><div class="c-markdown"><p>为所有包访问启用跟踪消息。对于每次访问,都会记录包中的包文件名和偏移量。这可能有助于解决某些与包相关的性能问题。请参阅<code>GIT_TRACE</code>可用的跟踪输出选项。</p></div></div><div class="doc-postil"><div class="c-markdown"><p><code>GIT_TRACE_PACKET</code></p></div></div><div class="doc-postil"><div class="c-markdown"><p>为进入或离开给定程序的所有数据包启用跟踪消息。这可以帮助调试对象协商或其他协议问题。在以“PACK”开头的数据包中关闭跟踪但见<code>GIT_TRACE_PACKFILE</code>下文)。请参阅<code>GIT_TRACE</code>可用的跟踪输出选项。</p></div></div><div class="doc-postil"><div class="c-markdown"><p><code>GIT_TRACE_PACKFILE</code></p></div></div><div class="doc-postil"><div class="c-markdown"><p>启用对给定程序发送或接收的包文件的跟踪。与其他跟踪输出不同,此跟踪是逐字的:没有标题,也没有引用二进制数据。你几乎肯定希望直接进入一个文件(例如<code>GIT_TRACE_PACKFILE=/tmp/my.pack</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>GIT_TRACE_PERFORMANCE</code></p></div></div><div class="doc-postil"><div class="c-markdown"><p>启用性能相关的跟踪消息,例如每个 Git 命令的总执行时间。请参阅<code>GIT_TRACE</code>可用的跟踪输出选项。</p></div></div><div class="doc-postil"><div class="c-markdown"><p><code>GIT_TRACE_SETUP</code></p></div></div><div class="doc-postil"><div class="c-markdown"><p>在 Git 完成设置阶段后,启用跟踪消息打印 .git ,工作树和当前工作目录。请参阅<code>GIT_TRACE</code>可用的跟踪输出选项。</p></div></div><div class="doc-postil"><div class="c-markdown"><p><code>GIT_TRACE_SHALLOW</code></p></div></div><div class="doc-postil"><div class="c-markdown"><p>启用可帮助调试浅存储库的提取/克隆的跟踪消息。请参阅<code>GIT_TRACE</code>可用的跟踪输出选项。</p></div></div><div class="doc-postil"><div class="c-markdown"><p><code>GIT_TRACE_CURL</code></p></div></div><div class="doc-postil"><div class="c-markdown"><p>启用 git 传输协议的所有传入和传出数据(包括描述性信息)的卷曲完全跟踪转储。这与<code>--trace-ascii</code>在命令行上进行卷曲相似。该选项将覆盖设置<code>GIT_CURL_VERBOSE</code>环境变量。请参阅<code>GIT_TRACE</code>可用的跟踪输出选项。</p></div></div><div class="doc-postil"><div class="c-markdown"><p><code>GIT_LITERAL_PATHSPECS</code></p></div></div><div class="doc-postil"><div class="c-markdown"><p>设置这个变量<code>1</code>将导致 Git 字面上处理所有的 pathspecs ,而不是作为 glob 模式。例如,运行<code>GIT_LITERAL_PATHSPECS=1 git log -- '*.c'</code>将搜索触摸该路径的提交<code>*.c</code>,而不搜索该 glob <code>*.c</code>匹配的任何路径。如果你正在向 Git 提供文字路径(例如,先前给出的路径<code>git ls-tree</code><code>--raw</code> diff 输出等),你可能会想要这样做。</p></div></div><div class="doc-postil"><div class="c-markdown"><p><code>GIT_GLOB_PATHSPECS</code></p></div></div><div class="doc-postil"><div class="c-markdown"><p>设置这个变量<code>1</code>将导致 Git 将所有的 pathspecs 视为 glob 模式又名“glob” magic )。</p></div></div><div class="doc-postil"><div class="c-markdown"><p><code>GIT_NOGLOB_PATHSPECS</code></p></div></div><div class="doc-postil"><div class="c-markdown"><p>设置这个变量<code>1</code>将导致 Git 将所有的 pathspecs 视为文字(又名 “literal” magic )。</p></div></div><div class="doc-postil"><div class="c-markdown"><p><code>GIT_ICASE_PATHSPECS</code></p></div></div><div class="doc-postil"><div class="c-markdown"><p>设置这个变量<code>1</code>将使 Git 将所有的 pathspecs 视为不区分大小写。</p></div></div><div class="doc-postil"><div class="c-markdown"><p><code>GIT_REFLOG_ACTION</code></p></div></div><div class="doc-postil"><div class="c-markdown"><p>当 ref 被更新时reflog 条目被创建以跟踪 ref 为什么被更新的原因(通常是更新 ref 的高级命令的名称),以及旧的和新的 ref 值。脚本 Porcelain 命令可以使用 set_reflog_action 辅助函数<code>git-sh-setup</code>将其名称设置为该变量,当它由最终用户作为顶级命令调用时,将记录在 reflog 的主体中。</p></div></div><div class="doc-postil"><div class="c-markdown"><p><code>GIT_REF_PARANOIA</code></p></div></div><div class="doc-postil"><div class="c-markdown"><p>如果设置为<code>1</code>,则在遍历参考列表时包含破损或严重名称的参考。在一个正常的,没有损坏的存储库中,这没有任何作用。但是,启用它可能会帮助 git 检测并中止一些操作在出现断点的情况下。Git 在执行破坏性操作(如 git-prune [1] )时会自动设置此变量。你不需要自己设置它,除非你想要确保一个操作触及每个参考(例如,因为你正在克隆一个存储库来进行备份)而偏执。</p></div></div><div class="doc-postil"><div class="c-markdown"><p><code>GIT_ALLOW_PROTOCOL</code></p></div></div><div class="doc-postil"><div class="c-markdown"><p>如果设置为以冒号分隔的协议列表,则表现得好像<code>protocol.allow</code>设置为<code>never</code>,并且列出的每个协议都已<code>protocol.&lt;name&gt;.allow</code>设置为<code>always</code>(覆盖任何现有配置)。换句话说,任何未提及的协议都将被禁止(即,这是白名单,而不是黑名单)。有关<code>protocol.allow</code>更多详细信息,请参阅 git-config [1] 中的说明。</p></div></div><div class="doc-postil"><div class="c-markdown"><p><code>GIT_PROTOCOL_FROM_USER</code></p></div></div><div class="doc-postil"><div class="c-markdown"><p>设置为0可防止配置为该<code>user</code>状态的 fetch / push / clone 使用的协议。这对于限制来自不受信任的存储库的递归子模块初始化或将可能不可信的 URL 提供给 git 命令的程序是有用的。有关更多详细信息,请参阅 git-config [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>有关以下内容的更多详细信息,请参阅用户手册和 gitcore-tutorial [7] 的 Git 概念一章。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>一个 Git 项目通常包含一个工作目录,顶层有一个 “.git” 子目录。.git 目录包含一个表示项目完整历史记录的压缩对象数据库,一个将历史链接到工作树的当前内容的 “index” 文件,以及指向该历史记录的指针,如标签和分支头。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>对象数据库包含三种主要类型的对象blob ,它保存文件数据; 指向 blob 和其他树来建立目录层次结构; 和提交,每个引用一棵树和一些父类提交。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>该提交等同于其他系统称为“变更集”或“版本”的提交,代表项目历史记录中的一个步骤,每个父代代表紧接的前一个步骤。承诺与多个父母代表合并独立的发展线。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>所有对象都由其内容的 SHA-1 散列命名通常写为40个十六进制数字的字符串。这些名称是全球唯一的。通过对提交进行签名可以确保导致提交的整个历史记录。为此提供了第四种对象类型即标签。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>首次创建时,对象存储在单个文件中,但为了提高效率,以后可以一起压缩成“包文件”。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>命名为 refs 的指针标记历史中的有趣点。一个 ref 可以包含一个对象的 SHA-1 名称或另一个 ref 的名称。名称开头的引用<code>ref/head/</code>包含正在开发的分支的最近提交(或“头”)的 SHA-1 名称。下面存储感兴趣标签的 SHA-1 名称<code>ref/tags/</code>。一个名为 ref 的特殊 ref <code>HEAD</code>包含当前签出分支的名称。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>索引文件使用所有路径的列表进行初始化,并且对于每个路径,都会创建一个 Blob 对象和一组属性。blob 对象代表当前分支头部的文件内容。属性(上次修改时间,大小等)取自工作树中的相应文件。通过比较这些属性可以找到对工作树的后续更改。索引可以用新内容更新,并且可以从存储在索引中的内容创建新的提交。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>该索引还能够存储给定路径名的多个条目(称为“阶段”)。这些阶段用于在合并进行时保存文件的各种未合并版本。</p></div></div><div class="doc-postil"><div class="c-markdown"><h2>更多文档</h2></div></div><div class="doc-postil"><div class="c-markdown"><p>请参阅“说明”部分中的参考资料以开始使用 Git 。以下内容可能比第一次使用用户需要的更详细。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>用户手册和 gitcore-tutorial [7] 中的 Git 概念章节都介绍了底层的 Git 体系结构。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>有关推荐的工作流程概述,请参阅 gitworkflows [7] 。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>有关有用的示例,另请参阅 howto 文档。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>内部信息记录在 Git API 文档中。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>从 CVS 迁移的用户也可能需要阅读 gitcvs-migration [7] 。</p></div></div><div class="doc-postil"><div class="c-markdown"><h2>作者</h2></div></div><div class="doc-postil"><div class="c-markdown"><p>Git 由 Linus Torvalds 创建,目前由 Junio C Hamano 维护。许多贡献来自 Git 邮件列表 [git@vger.kernel.org]mailtogit@vger.kernel.org。http://www.openhub.net/p/git/contributors/summary为您提供了更完整的贡献者名单。</p></div></div><div class="doc-postil"><div class="c-markdown"><p>如果你有一个 git.git 本身的副本git-shortlog [1] 和 git-blame [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>将错误报告给开发和维护主要完成的 Git 邮件列表[git@vger.kernel.org]mailtogit@vger.kernel.org。您无需订阅该列表即可在该处发送消息。</p></div></div></div>