git命令大全

git的描述

Git是一个快速,可扩展的分布式修订版本控制系统,具有异常丰富的命令集,该命令集提供高级操作和对内部组件的完全访问权限。

git的选项

--version

  • 打印git程序来自的Git套件版本。

--help

  • 打印概要和最常用命令的列表。如果给出选项--all-a,则将打印所有可用命令。如果命名为Git命令,则此选项将调出该命令的手册页。
  • 其他选项可用于控制手册页的显示方式。有关更多信息,请参见[git-help1],因为git --help ...它在内部转换为git help ...

-C <path>

  • 就像在<path>中而不是当前工作目录中启动git一样运行。当-C给出多个选项时,每个后续非绝对值-C 都相对于前一个进行解释-C 。如果<path>存在但为空,例如-C "",则当前工作目录保持不变。

  • 该选项影响期望使用路径名的选项,例如--git-dir, 路径名--work-tree的解释将相对于由该-C选项引起的工作目录进行。例如,以下调用是等效的:

    git --git-dir = a.git --work-tree = b -C状态
    git --git-dir = c / a.git --work-tree = c / b状态
    

-c <name>=<value>

  • 将配置参数传递给命令。给定的值将覆盖配置文件中的值。<name>的格式应与git config列出的格式相同 (子键由点分隔)。

    请注意,省略=ingit -c foo.bar ...是允许的,并设置 foo.bar为boolean true值(就像[foo]bar在配置文件中一样)。包含等于但值为空的值(如git -c foo.bar= ...)设置foo.bargit config --type=bool将转换为的空字符串false

--exec-path[=<path>]

  • 安装核心Git程序的路径。也可以通过设置GIT_EXEC_PATH环境变量来控制。如果没有给出路径,git将打印当前设置,然后退出。

--html-path

  • 打印安装Git的HTML文档并退出的路径(不带斜线)。

--man-path

  • man(1)为该版本的Git的手册页打印manpath(请参阅参考资料),然后退出。

--info-path

  • 打印记录此版本Git的信息文件的安装路径,然后退出。

-p

--paginate

  • 如果标准输出是终端,则将所有输出通过管道传递到less(或设置为$ PAGER)中。这将覆盖pager.<cmd> 配置选项(请参阅下面的“配置机制”部分)。

-P

--no-pager

  • 不要将Git输出通过管道传给寻呼机。

--git-dir=<path>

  • 设置存储库的路径(“ .git”目录)。也可以通过设置GIT_DIR环境变量来控制。它可以是当前工作目录的绝对路径或相对路径。

    使用此选项(或GIT_DIR环境变量)指定“ .git”目录的位置会关闭试图通过“ .git”子目录查找目录的存储库发现(这是存储库和工作树的顶层的方式)被发现),并告诉Git您处在工作树的顶层。如果您不在工作树的顶层目录中,则应使用--work-tree=<path>选项(或GIT_WORK_TREE 环境变量)告诉Git工作树的顶层位置在哪里

    如果您只想像运行git一样运行git,请<path>使用 git -C <path>

--work-tree=<path>

  • 设置路径到工作树。它可以是绝对路径,也可以是相对于当前工作目录的路径。也可以通过设置GIT_WORK_TREE环境变量和core.worktree配置变量来控制(有关更详细的讨论,请参见[git-config 1]中的core.worktree )。

--namespace=<path>

  • 设置Git命名空间。有关更多详细信息,请参见[gitnamespaces 7]。等效于设置GIT_NAMESPACE环境变量。

--super-prefix=<path>

  • 目前仅供内部使用。设置一个前缀,该前缀给出从存储库到其根目录的路径。一种用途是为子模块提供有关调用它的超级项目的上下文。

--bare

  • 将存储库视为裸存储库。如果未设置GIT_DIR环境,则将其设置为当前工作目录。

--no-replace-objects

  • 不要使用替换引用来替换Git对象。有关更多信息,请参见 [git-replace 1]

--literal-pathspecs

  • 从字面上对待pathspec(即,不要乱扔,没有pathspec魔术)。这等效于将GIT_LITERAL_PATHSPECS环境变量设置为1

--glob-pathspecs

  • 向所有pathspec添加“ glob”魔术。这等效于将GIT_GLOB_PATHSPECS环境变量设置为1。可以使用pathspec magic“:(literal)”禁用单个pathspec上的globing

--noglob-pathspecs

  • 向所有pathspec添加“文字”魔术。这等效于将GIT_NOGLOB_PATHSPECS环境变量设置为1。可以使用pathspec magic“:(glob)”在单个pathspec上启用globing

--icase-pathspecs

  • 向所有pathspec添加“ icase”魔术。这等效于将GIT_ICASE_PATHSPECS环境变量设置为1

--no-optional-locks

  • 不要执行需要锁定的可选操作。这等效于将设置GIT_OPTIONAL_LOCKS0

--list-cmds = group [,group ...]

  • 按组列出命令。这是内部/实验选项,将来可能会更改或删除。支持的组包括:内置程序,parseopt(使用parse-options的内置命令),main(libexec目录中的所有命令),其他(其他所有$PATH具有git-前缀的命令),list- <类别>(请参阅command- list.txt),nohelpers(不包括helper命令),别名和config(从config变量completion.commands中检索命令列表)

高级命令

  • git-add

    将文件内容添加到索引

  • git-am

    从邮箱应用一系列补丁

  • git-archive

    从命名树创建文件档案

  • git-bisect

    使用二进制搜索找到引入错误的提交

  • git-branch

    列出,创建或删除分支

  • git-bundle

    按档案移动对象和参照

  • git-checkout

    切换分支或还原工作树文件

  • git-cherry-pick

    应用一些现有提交引入的更改

  • git-citool

    git-commit的图形替代

  • git-clean

    从工作树中删除未跟踪的文件

  • git-clone

    将存储库克隆到新目录

  • git-commit

    记录对存储库的更改

  • git-describe

    根据可用的引用为对象赋予人类可读的名称

  • git-diff

    显示提交,提交和工作树等之间的更改

  • git-fetch

    从另一个存储库下载对象和引用

  • git-format-patch

    准备用于电子邮件提交的补丁

  • git-gc

    清理不必要的文件并优化本地存储库

  • git-grep

    打印与图案匹配的线

  • git-gui

    Git的便携式图形界面

  • git-init

    创建一个空的Git存储库或重新初始化一个现有的存储库

  • gitk

    Git存储库浏览器

  • git-log

    显示提交日志

  • git-maintenance

    运行任务以优化Git存储库数据

  • git-merge

    将两个或多个开发历史联系在一起

  • git-mv

    移动或重命名文件,目录或符号链接

  • git-notes

    添加或检查对象注释

  • git-pull

    从另一个存储库或本地分支获取并与之集成

  • git-push

    更新远程引用以及关联的对象

  • git-range-diff

    比较两个提交范围(例如,分支的两个版本)

  • git-rebase

    重新提交在另一个基本提示之上的提交

  • git-reset

    将当前HEAD重置为指定状态

  • git-restore

    恢复工作树文件

  • git-revert

    还原一些现有的提交

  • git-rm

    从工作树和索引中删除文件

  • git-shortlog

    汇总git日志输出

  • git-show

    显示各种类型的对象

  • git-sparse-checkout

    初始化和修改稀疏签出

  • git-stash

    将更改存储在脏的工作目录中

  • git-status

    显示工作树状态

  • git-submodule

    初始化,更新或检查子模块

  • git-switch

    切换分支

  • git-tag

    创建,列出,删除或验证使用GPG签名的标签对象

  • git-worktree

    管理多个工作树

辅助命令

机械手:

  • git-config

    获取并设置存储库或全局选项

  • git-fast-export

    Git数据导出器

  • git-fast-import

    快速Git数据导入器的后端

  • git-filter-branch

    重写分支

  • git-mergetool

    运行合并冲突解决工具以解决合并冲突

  • git-pack-refs

    包装头和标签,可有效访问存储库

  • git-prune

    从对象数据库中修剪所有无法访问的对象

  • git-reflog

    管理Reflog信息

  • git-remote

    管理一组跟踪的存储库

  • git-repack

    将解压缩的对象打包到存储库中

  • git-replace

    创建,列出,删除引用以替换对象

询问器:

  • git-annotate

    用提交信息注释文件行

  • git-blame

    显示什么修订和作者最后修改文件的每一行

  • git-bugreport

    收集信息以供用户提交错误报告

  • git-count-objects

    计算解压缩的对象数及其磁盘消耗量

  • git-difftool

    使用常见的差异工具显示更改

  • git-fsck

    验证数据库中对象的连接性和有效性

  • git-help

    显示有关Git的帮助信息

  • git-instaweb

    即时浏览gitweb中的工作库

  • git-merge-tree

    显示三路合并而不会触及索引

  • git-rerere

    重用记录的冲突合并解决方案

  • git-show-branch

    显示分支及其提交

  • git-verify-commit

    检查提交的GPG签名

  • git-verify-tag

    检查代码的GPG签名

  • gitweb

    Git Web界面(Git存储库的Web前端)

  • git-whatchanged

    显示每次提交引入差异的日志

与他人互动

这些命令用于通过电子邮件打补丁与外国SCM和其他人进行交互。

  • git-archimport

    将GNU Arch存储库导入Git

  • git-cvsexportcommit

    将单个提交导出到CVS签出

  • git-cvsimport

    从另一个讨厌的SCM抢救您的数据

  • git-cvsserver

    适用于Git的CVS服务器模拟器

  • git-imap-send

    将补丁集从标准输入发送到IMAP文件夹

  • git-p4

    从Perforce存储库导入并提交给Perforce存储库

  • git-quiltimport

    将被子补丁集应用于当前分支

  • git-request-pull

    生成未决更改的摘要

  • git-send-email

    通过电子邮件发送补丁集

  • git-svn

    Subversion存储库和Git之间的双向操作

重置,还原和还原

有三个命令具有类似名称:git resetgit restoregit revert

  • git-revert关于进行新的提交,该提交将还原其他提交所做的更改。

  • git-restore关于从索引或其他提交还原工作树中的文件。此命令不会更新您的分支。该命令还可用于从另一个提交还原索引中的文件。

  • git-reset是关于更新分支,移动提示以便从分支中添加或删除提交。此操作更改提交历史记录。

    git reset也可以用于还原索引,与重叠 git restore

低级命令

  • git-apply

    将修补程序应用于文件和/或索引

  • git-checkout-index

    将文件从索引复制到工作树

  • git-commit-graph

    编写并验证Git提交图文件

  • git-commit-tree

    创建一个新的提交对象

  • git-hash-object

    计算对象ID并可以选择从文件创建Blob

  • git-index-pack

    现有打包压缩文件的构建打包索引文件

  • git-merge-file

    运行三向文件合并

  • git-merge-index

    对需要合并的文件运行合并

  • git-multi-pack-index

    编写并验证多重包装索引

  • git-mktag

    创建一个标签对象

  • git-mktree

    从ls-tree格式的文本构建树对象

  • git-pack-objects

    创建一个打包的对象档案

  • git-prune-packed

    删除打包文件中已经存在的其他对象

  • git-read-tree

    将树信息读入索引

  • git-symbolic-ref

    读取,修改和删除符号引用

  • git-unpack-objects

    从压缩档案中解压缩对象

  • git-update-index

    将工作目录中的文件内容注册到索引

  • git-update-ref

    安全地更新存储在引用中的对象名称

  • git-write-tree

    从当前索引创建树对象

询问命令

  • git-cat-file

    提供存储库对象的内容或类型和大小信息

  • git-cherry

    查找尚未应用于上游的提交

  • git-diff-files

    比较工作树中的文件和索引

  • git-diff-index

    将树与工作树或索引进行比较

  • git-diff-tree

    比较通过两个树对象找到的Blob的内容和模式

  • git-for-each-ref

    输出有关每个参考的信息

  • git-for-每个-repo

    在存储库列表上运行Git命令

  • git-get-tar-commit-id

    从使用git-archive创建的档案中提取提交ID

  • git-ls-files

    显示有关索引和工作树中文件的信息

  • git-ls-remote

    列出远程存储库中的引用

  • git-ls-tree

    列出树对象的内容

  • git-merge-base

    寻找尽可能好的共同祖先以进行合并

  • git-name-rev

    查找给定转速的符号名称

  • git-pack-redundant

    查找冗余包文件

  • git-rev-list

    以相反的时间顺序列出提交对象

  • git-rev-parse

    挑选和按摩参数

  • git-show-index

    显示打包的存档索引

  • git-show-ref

    列出本地存储库中的引用

  • git-unpack-file

    创建一个包含blob内容的临时文件

  • git-var

    显示一个Git逻辑变量

  • git-verify-pack

    验证打包的Git存档文件

通常,询问命令不会触及工作树中的文件。

同步存储库

  • git-daemon

    一个非常简单的Git存储库服务器

  • git-fetch-pack

    从另一个存储库接收丢失的对象

  • git-http-backend

    通过HTTP的Git的服务器端实现

  • git-send-pack

    通过Git协议将对象推送到另一个存储库

  • git-update-server-info

    更新辅助信息文件以帮助哑服务器

以下是上面使用的帮助程序命令;最终用户通常不直接使用它们。

  • git-http-fetch

    通过HTTP从远程Git存储库下载

  • git-http-push

    通过HTTP / DAV将对象推送到另一个存储库

  • git-receive-pack

    接收推送到存储库中的内容

  • git-shell

    仅限Git SSH访问的受限登录Shell

  • git-upload-archive

    将存档发送回git-archive

  • git-upload-pack

    将打包的对象发送回git-fetch-pack

内部帮助程序命令

这些是其他命令使用的内部帮助程序命令。最终用户通常不直接使用它们。

  • git-check-attr

    显示gitattributes信息

  • git-check-ignore

    调试gitignore /排除文件

  • git-check-mailmap

    显示联系人的规范名称和电子邮件地址

  • git-check-ref-format

    确保参考名称格式正确

  • git-column

    在列中显示数据

  • git-credential

    检索和存储用户凭证

  • git-credential-cache

    帮助程序将密码临时存储在内存中

  • git-credential-store

    将凭据存储在磁盘上的助手

  • git-fmt-merge-msg

    产生合并提交消息

  • git-interpret-trailers

    在提交消息中添加或解析结构化信息

  • git-mailinfo

    从单个电子邮件中提取补丁和作者身份

  • git-mailsplit

    简单的UNIX mbox拆分器程序

  • git-merge-one-file

    与git-merge-index一起使用的标准帮助程序

  • git-patch-id

    计算补丁的唯一ID

  • git-sh-i8n

    Git的Shell脚本的i8n安装代码

  • git-sh-setup

    通用Git Shell脚本设置代码

  • git-stripspace

    删除不必要的空格

导游

以下文档页面是有关Git概念的指南。

  • gitattributes

    定义每个路径的属性

  • gitcli

    Git命令行界面和约定

  • gitcore-tutorial

    针对开发人员的Git核心教程

  • gitcredentials

    提供用户名和密码给Git

  • gitcvs-migration

    适用于CVS用户的Git

  • gitdiffcore

    调整差异输出

  • giteveryday

    日常Git有用的最小命令集

  • gitfaq

    有关使用Git的常见问题

  • gitglossary

    Git词汇表

  • githooks

    Git使用的挂钩

  • gitignore

    指定要忽略的故意未跟踪的文件

  • gitmodules

    定义子模块属性

  • gitnamespaces

    Git命名空间

  • gitremote-helpers

    帮助程序与远程存储库进行交互

  • gitrepository-layout

    Git仓库布局

  • gitrevisions

    指定Git的修订和范围

  • gitsubmodules

    将一个存储库安装到另一个存储库中

  • gittutorial-2

    Git教程简介:第二部分

  • gittutorial

    Git教程简介

  • gitworkflows

    使用Git推荐的工作流程概述

配置机制

Git使用一种简单的文本格式来存储每个存储库和每个用户的自定义。这样的配置文件可能如下所示:

#
# 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"
posted on 2021-01-04 13:21  神秘杰尼龟  阅读(571)  评论(0)    收藏  举报