名称

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

概要

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

描述

这不是最终用户想要运行的命令。永远不会。此文档旨在供研究 Porcelain-ish 脚本和/或编写新脚本的人员使用。

_git sh-setup_ scriptlet 被设计成由其他 shell 脚本通过 `.` 包含进来(使用 `.`),以设置一些指向普通 Git 目录的变量和一些辅助 shell 函数。

在包含它之前,您的脚本应该设置一些变量; `USAGE`(以及 `LONG_USAGE`,如果存在)用于定义 `usage()` shell 函数给出的消息。 如果脚本可以从工作树的子目录运行(某些命令不允许),则可以设置 `SUBDIRECTORY_OK`。

该 scriptlet 设置 `GIT_DIR` 和 `GIT_OBJECT_DIRECTORY` shell 变量,但**不**将它们导出到环境。

函数

die

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

usage

用用法消息 die。

set_reflog_action

除非已设置,否则将 `GIT_REFLOG_ACTION` 环境设置为给定的字符串(通常是程序的名称)。 只要脚本运行更新引用的 `git` 命令,就会使用此字符串的值创建一个 reflog 条目,以记录哪个命令更新了引用。

git_editor

在给定文件上运行用户选择的编辑器(GIT_EDITOR、core.editor、VISUAL 或 EDITOR),但如果没有指定编辑器并且终端很笨拙,则会出错。

is_bare_repository

将 `true` 或 `false` 输出到标准输出流,以指示该存储库是否为裸存储库(即,没有关联的工作树)。

cd_to_toplevel

运行 chdir 到工作树的顶层。

require_work_tree

检查当前目录是否在存储库的工作树中,否则 die。

require_work_tree_exists

检查与存储库关联的工作树是否存在,否则 die。 通常在调用 cd_to_toplevel 之前完成,如果没有工作树,则无法执行。

require_clean_work_tree <action> [<hint>]

检查与存储库关联的工作树和索引是否没有对跟踪文件的未提交更改。 否则,它会发出以下形式的错误消息 `Cannot <action>: <reason>. <hint>`,并 die。 例子

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

修改第一个文件,以便只保留与第二个文件相同的行。 如果没有足够的共同材料,则第一个文件将保持为空。 该结果适合作为三向合并的虚拟基础输入。

GIT

属于 git[1] 套件的一部分

scroll-to-top