## 名称

git-sh-setup - 常用的 Git shell 脚本设置代码

## 概要

    . "$(git --exec-path)/git-sh-setup"

## 描述

这不是最终用户想要运行的命令。永远不会是。本文档适用于正在研究 Pornic-ish 脚本和/或正在编写新脚本的人员。

该`git sh-setup`小脚本设计（使用要采购`.`通过其他 shell 脚本）设置一些变量，在普通的 Git 目录和几个帮手外壳功能指向。

在采购它之前，您的脚本应该设置一些变量； `USAGE`（以及`LONG_USAGE`如果有的话）用于定义由`usage()`shell 函数给出的消息。`SUBDIRECTORY_OK`可以设置脚本是否可以从工作树的子目录运行（某些命令不会）。

小脚本设置`GIT_DIR`和`GIT_OBJECT_DIRECTORY`shell 变量，但并没有将其导出到环境中。

## 功能

结束

将提供的错误消息发送到标准错误流后退出。

用法

与用法消息一起结束。

set_reflog_action

除非已设置`GIT_REFLOG_ACTION`环境，否则请将环境设置为给定的字符串（通常是程序的名称）。每当脚本运行`git`更新引用的命令时，就会使用此字符串的值创建引用日志条目，以保留引用更新引用的记录。

git_editor

在给定的文件上运行用户选择的编辑器（GIT_EDITOR，core.editor，VISUAL或EDITOR），但如果没有指定编辑器并且终端为哑，则出错。

is_bare_repository

输出`true`或`false`标准输出流来指示仓库是否为裸仓库（即没有关联的工作树）。

cd_to_toplevel

运行 chdir 到工作树的顶层。

require_work_tree

检查当前目录是否在存储库的工作树内，否则会结束。

require_work_tree_exists

检查与存储库相关联的工作树是否存在，否则将结束。通常在调用 cd_to_toplevel 之前完成，如果没有工作树，这是不可能的。

require_clean_work_tree <action> <hint>

检查与存储库相关联的工作树和索引没有未被落实的对被跟踪文件的改变。否则它会发出`Cannot <action>: <reason>. <hint>`表单的错误消息，并结束。例：

    require_clean_work_tree rebase "Please commit or stash them."

get_author_ident_from_commit

输出与 eval 一起使用的代码，以便为给定提交设置 GIT_AUTHOR_NAME，GIT_AUTHOR_EMAIL和GIT_AUTHOR_DATE 变量。

create_virtual_base

修改第一个文件，只保留与第二个文件相同的行。如果共用资料不足，则第一个文件留空。该结果适合作为3路合并的虚拟基础输入。