2
2
3
3
Git 总是在一个 `bash` shell 中运行,并借助一些 shell 环境变量来决定它的运行方式。
4
4
有时候,知道它们是什么以及它们如何让 Git 按照你想要的方式去运行会很有用。
5
- 这里不会列出所有的 Git 环境变量,但我们会覆盖最有的那部分 。
5
+ 这里不会列出所有的 Git 环境变量,但我们会涉及最有的那部分 。
6
6
7
7
8
8
==== 全局行为
9
9
10
- 像通常的程序一样,Git 的某些行为依赖于环境变量 。
10
+ 像通常的程序一样,Git 的常规行为依赖于环境变量 。
11
11
12
12
*`GIT_EXEC_PATH`* 决定 Git 到哪找它的子程序 (像 `git-commit`, `git-diff` 等等)。
13
13
用可以用 `git --exec-path` 来查看当前设置.
14
14
15
15
*`HOME`* 通常不会考虑修改这个变量(太多其它东西都依赖它),这是 Git 查找全局配置文件的地方。
16
- 如果你想要一个真正的便携版 Git, 包括全局配置 , 你可以在便携版 Git 的 shell 配置中覆盖 `HOME` 设置。
16
+ 如果你想要一个包括全局配置的真正的便携版 Git, 你可以在便携版 Git 的 shell 配置中覆盖 `HOME` 设置。
17
17
18
18
*`PREFIX`* 也类似,除了用于系统范围配置。
19
19
Git 在 `$PREFIX/etc/gitconfig` 查找此文件.
20
20
21
- *`GIT_CONFIG_NOSYSTEM`*, 如果设置了 ,就禁用系统范围的配置文件。
21
+ *`GIT_CONFIG_NOSYSTEM`*, 如果设置了这个变量 ,就禁用系统范围的配置文件。
22
22
这在系统配置影响了你的命令,而你又无权限修改的时候很有用。
23
23
24
24
*`GIT_PAGER`* 控制在命令行上显示多页输出的程序。
25
25
如果这个没有设置,就会用 `PAGER` .
26
26
27
- *`GIT_EDITOR`* 当用户需要编辑一些文本(比如提交信息)时, Git 会启动这个编辑器 。
27
+ *`GIT_EDITOR`* 当用户需要编辑一些文本(比如提交信息)时, Git 会启动这个变量指定的编辑器 。
28
28
如果没设置,就会用 `EDITOR` 。
29
29
30
30
@@ -79,7 +79,7 @@ Git 提交对象的创建通常最后是由 `git-commit-tree` 来完成, `git-
79
79
80
80
*`GIT_COMMITTER_DATE`* 是 ``committer'' 字段的时间戳。
81
81
82
- *`EMAIL`* 如果 `user.email` 没有配置, 这个就是用到的邮件地址 。
82
+ *`EMAIL`* 如果 `user.email` 没有配置, 就会用到变量指定的邮件地址 。
83
83
如果 _这个_ 也没有设置, Git 继续回退使用系统用户和主机名。
84
84
85
85
@@ -107,8 +107,8 @@ Git 使用 `curl` 库通过 HTTP来完成网络操作, 所以 *`GIT_CURL_VERBO
107
107
*`GIT_EXTERNAL_DIFF`* 用来覆盖 `diff.external` 配置的值。
108
108
如果设置了这个值, 当执行Git `git diff` 时,Git 会调用该程序。
109
109
110
- *`GIT_DIFF_PATH_COUNTER`* and *`GIT_DIFF_PATH_TOTAL`* 在 `GIT_EXTERNAL_DIFF` 或 `diff.external` 指定的程序内容有用 。
111
- 前者表示在一系列文件中哪个是被比较的(从 1 开始),后者表示每批文件的总数。 ( 原文: The former represents which file in a series is being diffed (starting with 1), and the latter is the total number of files in the batch. )
110
+ *`GIT_DIFF_PATH_COUNTER`* 和 *`GIT_DIFF_PATH_TOTAL`* 对于 `GIT_EXTERNAL_DIFF` 或 `diff.external` 指定的程序有用 。
111
+ 前者表示在一系列文件中哪个是被比较的(从 1 开始),后者表示每批文件的总数。
112
112
113
113
*`GIT_MERGE_VERBOSITY`* 控制递归合并策略的输出。
114
114
允许的值有下面这些:
@@ -131,8 +131,8 @@ Git 内置了相当完整的跟踪信息,你需要做的就是把它们打开
131
131
* ``true'', ``1'', 或 ``2'' – 跟踪类别写到标准错误输出.
132
132
* 以 `/` 开头的绝对路径 – 跟踪输出会被写到那个文件。
133
133
134
- *`GIT_TRACE`* controls general traces, which don't fit into any specific category.
135
- This includes the expansion of aliases, and delegation to other sub-programs.
134
+ *`GIT_TRACE`* 控制常规跟踪,它并不适用于特殊情况。
135
+ 它跟踪的范围包括别名的展开和其他子程序的委托。
136
136
137
137
[source,console]
138
138
----
@@ -214,7 +214,7 @@ nothing to commit, working directory clean
214
214
215
215
==== 其它
216
216
217
- *`GIT_SSH`*, 如果指定了 , Git 连接 SSH 主机时会用指定的程序代替 `ssh` 。
217
+ *`GIT_SSH`*, 如果指定了这个变量 , Git 连接 SSH 主机时会用指定的程序代替 `ssh` 。
218
218
它会被用 `$GIT_SSH [username@]host [-p <port>] <command>` 的命令方式调用。
219
219
这不是配置定制 `ssh` 调用方式的最简单的方法; 它不支持额外的命令行参数, 所以你必须写一个包装脚本然后让 `GIT_SSH` 指向它。
220
220
可能用 `~/.ssh/config` 会更简单。
@@ -226,7 +226,7 @@ nothing to commit, working directory clean
226
226
*`GIT_NAMESPACE`* 控制有命令空间的引用的访问,与 `--namespace` 标志是相同的.
227
227
这主要在服务器端有用, 如果你想在一个版本库中存储单个版本库的多个 fork, 只要保持引用是隔离的就可以。
228
228
229
- *`GIT_FLUSH`* 当增量地向标准输出写入时可以强制 Git 使用没有缓存的 I/O。
229
+ *`GIT_FLUSH`* 强制 Git 在向标准输出增量写入时使用没有缓存的 I/O。
230
230
设置为 1 让 Git 刷新更多, 设置为 0 则使所有的输出被缓存。
231
231
默认值(若此变量未设置)是根据活动和输出模式的不同选择合适的缓存方案。
232
232
0 commit comments