Setup and Config
Getting and Creating Projects
Basic Snapshotting
Branching and Merging
Sharing and Updating Projects
Inspection and Comparison
Patching
Debugging
External Systems
Server Admin
Guides
- gitattributes
- Command-line interface conventions
- Everyday Git
- Frequently Asked Questions (FAQ)
- Glossary
- Hooks
- gitignore
- gitmodules
- Revisions
- Submodules
- Tutorial
- Workflows
- All guides...
Administration
Plumbing Commands
-
2.52.0
2025-11-17
- 2.51.2 no changes
-
2.51.1
2025-10-15
- 2.50.1 → 2.51.0 no changes
-
2.50.0
2025-06-16
- 2.49.1 no changes
-
2.49.0
2025-03-14
- 2.48.1 → 2.48.2 no changes
-
2.48.0
2025-01-10
- 2.47.1 → 2.47.3 no changes
-
2.47.0
2024-10-06
- 2.46.1 → 2.46.4 no changes
-
2.46.0
2024-07-29
- 2.45.2 → 2.45.4 no changes
-
2.45.1
2024-04-29
-
2.45.0
2024-04-29
- 2.44.2 → 2.44.4 no changes
-
2.44.1
2024-04-19
-
2.44.0
2024-02-23
- 2.43.5 → 2.43.7 no changes
-
2.43.4
2024-04-19
- 2.43.2 → 2.43.3 no changes
-
2.43.1
2024-02-09
-
2.43.0
2023-11-20
- 2.42.3 → 2.42.4 no changes
-
2.42.2
2024-04-19
-
2.42.1
2023-11-02
-
2.42.0
2023-08-21
- 2.41.2 → 2.41.3 no changes
-
2.41.1
2024-04-19
-
2.41.0
2023-06-01
- 2.40.3 → 2.40.4 no changes
-
2.40.2
2024-04-19
- 2.40.1 no changes
- 2.40.0 no changes
- 2.39.5 no changes
-
2.39.4
2024-04-19
- 2.39.1 → 2.39.3 no changes
-
2.39.0
2022-12-12
- 2.38.3 → 2.38.5 no changes
-
2.38.2
2022-12-11
- 2.38.1 no changes
-
2.38.0
2022-10-02
- 2.37.3 → 2.37.7 no changes
-
2.37.2
2022-08-11
- 2.37.1 no changes
-
2.37.0
2022-06-27
- 2.36.1 → 2.36.6 no changes
-
2.36.0
2022-04-18
- 2.35.1 → 2.35.8 no changes
-
2.35.0
2022-01-24
- 2.34.1 → 2.34.8 no changes
-
2.34.0
2021-11-15
- 2.33.3 → 2.33.8 no changes
-
2.33.2
2022-03-23
-
2.33.1
2021-10-12
- 2.32.1 → 2.33.0 no changes
-
2.32.0
2021-06-06
- 2.31.1 → 2.31.8 no changes
-
2.31.0
2021-03-15
- 2.30.1 → 2.30.9 no changes
-
2.30.0
2020-12-27
- 2.29.1 → 2.29.3 no changes
-
2.29.0
2020-10-19
- 2.28.1 no changes
-
2.28.0
2020-07-27
- 2.27.1 no changes
-
2.27.0
2020-06-01
- 2.26.1 → 2.26.3 no changes
-
2.26.0
2020-03-22
- 2.25.2 → 2.25.5 no changes
-
2.25.1
2020-02-17
-
2.25.0
2020-01-13
- 2.23.1 → 2.24.4 no changes
-
2.23.0
2019-08-16
- 2.22.2 → 2.22.5 no changes
-
2.22.1
2019-08-11
-
2.22.0
2019-06-07
- 2.20.1 → 2.21.4 no changes
-
2.20.0
2018-12-09
- 2.19.3 → 2.19.6 no changes
-
2.19.2
2018-11-21
- 2.19.1 no changes
-
2.19.0
2018-09-10
- 2.18.1 → 2.18.5 no changes
-
2.18.0
2018-06-21
- 2.17.1 → 2.17.6 no changes
-
2.17.0
2018-04-02
-
2.16.6
2019-12-06
-
2.15.4
2019-12-06
-
2.14.6
2019-12-06
- 2.13.7 no changes
-
2.12.5
2017-09-22
-
2.11.4
2017-09-22
-
2.10.5
2017-09-22
-
2.9.5
2017-07-30
-
2.8.6
2017-07-30
-
2.7.6
2017-07-30
-
2.6.7
2017-05-05
-
2.5.6
2017-05-05
-
2.4.12
2017-05-05
-
2.3.10
2015-09-28
-
2.2.3
2015-09-04
-
2.1.4
2014-12-17
-
2.0.5
2014-12-17
概述
git [-v | --version] [-h | --help] [-C <path>] [-c <name>=<value>]
[--exec-path[=<path>]] [--html-path] [--man-path] [--info-path]
[-p | --paginate | -P | --no-pager] [--no-replace-objects] [--no-lazy-fetch]
[--no-optional-locks] [--no-advice] [--bare] [--git-dir=<path>]
[--work-tree=<path>] [--namespace=<name>] [--config-env=<name>=<envvar>]
<command> [<args>]
描述
Git 是一个快速、可扩展的分布式版本控制系统,它拥有异常丰富的命令集,可以提供高级操作和对内部的完全访问。
参阅 gittutorial[7] 开始使用,然后查看 giteveryday[7] 以获取一组有用的基础命令。 Git 用户手册中有对 Git 更为深入的介绍。
在掌握了基本概念之后,你可以回到本页了解 Git 提供的命令。 你可以通过 "git help" 命令了解更多关于单个 Git 命令的信息。 gitcli[7] 手册页面提供了命令行命令语法的概述。
最新 Git 文档的格式化和超文本副本可以在 https://git.github.io/htmldocs/git.html 或 https://git-scm.com/docs 上查看。
选项
- -v
- --version
-
打印 git 程序的 Git 套件版本。
此选项在内部转换为
gitversion... 并接受与git-version[1] 命令相同的选项。如果--version后接--help选项,则会优先展示--version选项的帮助信息。 - -h
- --help
-
打印概要和最常用的命令列表。如果给出选项
--all或-a,则打印所有可用的命令。如果给出某个命令,该选项将调出该命令的手册页面。因为
git--help... 会在内部转换为githelp...,所以有关其他可以控制手册页面显示方式的选项可以参阅 git-help[1] 来获得更详细的信息。 - -C <启动路径>
-
运行时就像 git 命令在 <启动路径> 而不是在当前工作目录下启动一样。 当给出多个
-C选项时,每个后续的非绝对的-C<启动路径> 都是相对于前一个-C<启动路径> 解释的。 如果 <启动路径> 存在但为空,例如-C"",那么命令就在当前工作目录启动。这个选项会影响到像
--git-dir和--work-tree这样的需要路径名的选项,因为它们会用-C选项设置的启动路径进行相对路径的解释。例如,以下的调用是等价的:git --git-dir=a.git --work-tree=b -C c status git --git-dir=c/a.git --work-tree=c/b status
- -c <配置名>=<配置值>
-
向命令传递一个配置参数。给出的值将覆盖配置文件的值。 <配置名> 的格式应与 git config 列出的格式相同(子键由
.分隔)。注意在
git-cfoo.bar... 中省略=是允许的,并会将foo.bar设置为布尔值 true(就像配置文件中的 [foo]bar一样)。包括等号但有一个空值(如git-cfoo.bar=... )会将foo.bar设置为空字符串,如果gitconfig--type=bool空值会转换为false。 - --config-env=<配置名>=<环境变量>
-
像
-c<配置名>=<配置值> 一样,给配置变量 <配置名> 一个值,其中 <环境变量> 是一个环境变量的名字,可以从中获取该环境变量的值。与-c选项不同的是,没有直接将值设置为空字符串的快捷方式,除非环境变量本身就设置为空字符串。 如果 <环境变量> 在环境变量中不存在,则会报错。<环境变量> 不应当包含等号,以避免与包含等号的 <配置名> 产生歧义。当你想把临时配置选项传递给 Git,但在操作系统上,其他进程可能能读取你的命令行(如
/proc/self/cmdline),但不能读取你的环境(如/proc/self/environ)时,这个功能就很有用了。这种行为在 Linux 上是默认的,但在你的系统上可能不是。请注意,这可能会增加变量的安全性,例如
http.extraHeader,因为他的敏感信息包含在值中,但并不会增加例如 url.<原始 URL 前缀>.insteadOf 这种变量的安全性,因为其敏感信息可能会包含在部分键中。 - --exec-path[=<核心程序路径>]
-
安装 Git 核心程序的路径。 这也可以通过设置 GIT_EXEC_PATH 环境变量来控制。如果没有给出路径,git 会打印当前的设置,然后退出。
- --html-path
-
打印 Git 的 HTML 文档的安装路径(尾部不带斜杠)然后退出。
- --man-path
-
打印该版本 Git man page 的 manpath(参阅
man(1))之后退出。 - --info-path
-
打印记录该版本 Git 信息文件的安装路径并退出。
- -p
- --paginate
-
如果标准输出是一个终端,则将所有的输出输出到 less(git 默认的分页器)(或者是 $PAGER 变量设置的值)中。 这会覆盖
pager.<cmd> 配置选项(参阅下面的 “配置机制” 部分)。 - -P
- --no-pager
-
不使用分页器进行 Git 的输出。
- --git-dir=<仓库路径>
-
设置仓库的路径(".git" 目录)。这也可以通过设置
GIT_DIR环境变量来控制。<仓库路径> 可以是绝对路径或是当前工作目录的相对路径。使用该选项(或
GIT_DIR环境变量)指定 ".git" 目录的位置,这会关闭对带有 ".git" 子目录仓库的扫描(这是找到仓库和顶级工作区的方式),并告诉 Git 当前在顶级工作区。 如果当前并不在工作区的顶级目录,你应该用--work-tree=<工作区路径> 选项(或GIT_WORK_TREE环境变量)告诉 Git 顶级工作区在哪里如果你只是想在 <启动路径> 中运行 Git,可以使用
git-C<启动路径>。 - --work-tree=<工作区路径>
-
设置工作树的路径。<工作区路径> 可以是一个绝对路径或与当前工作目录相对的路径。 这也可以通过设置 GIT_WORK_TREE 环境变量和 core.worktree 配置变量来控制(参阅 git-config[1] 中的 core.worktree 获取更为详细的论述)。
- --namespace=<路径>
-
设置 Git 命名空间。 参阅 gitnamespaces[7] 以了解更多细节。 这相当于设置
GIT_NAMESPACE环境变量。 - --bare
-
将该仓库视为裸仓库。 如果没有设置 GIT_DIR 环境变量,它将在当前工作目录生成仓库。
- --no-replace-objects
-
Do not use replacement refs to replace Git objects. This is equivalent to exporting the
GIT_NO_REPLACE_OBJECTSenvironment variable with any value. See git-replace[1] for more information. - --no-lazy-fetch
-
不要按需从承诺远程获取缺失的对象。与
gitcat-file-e<object> 一起使用很有用,以查看对象是否在本地可用。这相当于将GIT_NO_LAZY_FETCH环境变量设置为1。 - --no-optional-locks
-
禁止执行需要文件锁的可选操作。这相当于将
GIT_OPTIONAL_LOCKS设置为0。 - --no-advice
-
禁止打印所有建议提示。
- --literal-pathspecs
-
按字面意思处理路径规格(即不使用通配符,不使用路径规范功能)。 这相当于将
GIT_LITERAL_PATHSPECS环境变量设置为1。 - --glob-pathspecs
-
在所有的路径规范中添加 "glob" 模式匹配功能。这相当于将
GIT_GLOB_PATHSPECS环境变量设置为1。可以用路径规范字符 ":(literal)" 在单个路径规格上禁用 "glob" 模式匹配功能。 - --noglob-pathspecs
-
在所有路径规范中添加 "literal" 模式匹配功能。这相当于将
GIT_NOGLOB_PATHSPECS环境变量设为1。可以使用路径规范字符 ":(glob)" 在单个路径规范上启用通配符模式匹配功能。 - --icase-pathspecs
-
在所有的路径规范中添加 "icase" 模式匹配功能。这相当于将
GIT_ICASE_PATHSPECS环境变量设置为1。 - --list-cmds=<命令组>[,<命令组>…]
-
按组列出命令。这是一个内部/实验性的选项,将来可能会改变或删除。支持的组有:buildins、parseopt(使用 parse-options 的内置命令)、main(libexec 目录下的所有命令)、others(
$PATH中其他带有 git- 前缀的命令)、list-<目录>(参阅 command-list.txt 中的目录【原文是这么说的,但是下面那个 Git 命令章节已经列出了所有命令列表】)、nohelpers(排除辅助命令)、alias 和 config(在配置 completion.commands 中检索命令列表) - --attr-source=<树对象>
-
从 <树对象> 而不是工作区中读取 gitattributes。参见 gitattributes[5]。这相当于设置
GIT_ATTR_SOURCE环境变量。
上层封装命令(瓷件)
我们将瓷件命令分为主要命令和一些辅助性的用户工具。
主要瓷件命令
|
Warning
|
Missing See original version for this content. |
辅助命令
操控:
|
Warning
|
Missing See original version for this content. |
审阅:
|
Warning
|
Missing See original version for this content. |
与其他应用交互
这些命令是为了与外部 SCM(源代码管理工具)以及通过电子邮件与其他人进行交互。
|
Warning
|
Missing See original version for this content. |