在开始使用Git时,重要的是要对其进行配置,这样它在特定的环境里才能正常工做。咱们还可以以喜欢的方式管理内容以及与Git交互git
Git命令行的广泛应用形式。一般以下:缓存
git <git-options> <command> <command-options> <operands>函数
下表描述了这一形式的不一样部分fetch
元素 | 描述 | 示例 | 备注 |
git | 运行git的命令 | git | |
<git-options> | Git自己的全局选项,这些选项也能够指定要执行的函数 | git --worktreeurl git --versionspa |
这些选项中的一些可能旨在用于独立操做(git --version),而其它一些会修改其余命令所使用过的值(git --worktree) |
<command> | 要执行的Git命令 | git --push | |
<command-options> | 对于所指定命令的选项 | git commit -m "comment" | 若是未指定可能会使用默认选项,选项也可能具备可被选择以便进一步限定该选项的值 |
<operands> | 命令要操做的操做数 | git add *.c | 特定于要执行的命令;示例包括工做目录中的文件,仓库中的分支或SHA1,或者特定的设置或值 |
Git能够采用不一样类型的操做数,他们就是要进行操做的对象的规范。在没有指定操做数时,命令会针对它在仓库、暂存区域或工做目录树范围中找到的全部合格项来进行操做。命令行
高层命令是为了面向用户,它们更常被使用以及更加便利,一般会提供较高级别的功能。底层命令会在较低级别发挥做用,也并不打算让普通用户使用。可使用高层命令或底层命令来完成Git中的某些职能。不过,一般须要几个具体的底层命令才能完成一个高层命令所执 行的任务日志
下表列出了Git中可用的高层命令regexp
命令 | 目的 |
add | 将文件内容添加到索引 |
bisect | 经过二进制搜索来查找涉及缺陷的变动 |
branch | 列示、建立或删除分支 |
checkout | 切换分支或恢复工做树文件 |
cherry | 找出有待应用到上游的提交 |
cherry-pick | 应用已有提交所涉及的一些变动 |
clone | 将仓库克隆到新目录 |
commit | 将变动记录到仓库 |
config | 获取以及设置仓库或全局选项 |
diff | 显示提交之间、提交与工做树之间等的变动 |
fetch | 下载来自另外一个仓库的对象和引用 |
grep | 打印匹配一个模式的行 |
help | 显示帮助信息 |
log | 显示提交日志 |
merge | 将两个或多个开发历史合并到一块儿 |
mv | 移动或重命名一个文件,目录或符号链接 |
pull | 从另外一个仓库或本地分支进行抓取或集成 |
push | 更新远程引用以及相关的对象 |
rebase | 将本地提交转发到更新的上游头信息 |
reset | 将当前head从新设置为指定状态 |
revert | 还原一些已有的提交 |
rm | 从工做树和索引中移除文件 |
show | 显示各类类型的对象 |
status | 显示工做树状态 |
submodule | 初始化、更新或检查子模块 |
subtree | 合并子树而且将仓库划分为子树 |
tag | 建立、列示、删除或验证标记对象 |
worktree | 管理多个工做树 |
关于底层命令的列出此处略去对象
提供给Git或者Git命令的参数能够被缩写成单个字母或者完整拼写成单词。这里要重要提的一点是,若是参数被完整拼写,就必须在前面使用两个连字符,好比--global。若是参数是缩写的,那么只须要一个连字符,好比-a。
当开始输入一个命令或者为一个命令输入参数时,Git提供了一项有帮助的自动完成特性,它能够完成两件事情
下面是两个示例。第一个是命令的示例。若是输入git c,而后按下Tab键,不会发生任何事情,由于存在多个以c开头的命令。
若是再次按下Tab键,Git会帮助显示全部以c开头的命令。在这种状况下,它还会向上滚动该列表而且让你处于能够继续输入所选命令的提示符处
下面是另外一个例子,其中要使用更多的字母来缩小可用的命令范围
提示:
在尝试为一个选项使用自动完成时,要确保已经用双连字符(--)语法做为该选项的开头,而不是仅仅使用单个连字符
为了设置Git中的配置值,要使用config命令,下面是其语法:
git config [<file-option>] [type] [--show-origin] [-z|--null] name [value [value-regex]]
git config [<file-option>] [type] --add name value
git config [<file-option>] [type] --replace-all name value [value-regex]
git config [<file-option>] [type] [--show-origin] [-z|--null] --get name [value-regex]
git config [<file-option>] [type] [--show-origin] [-z|--null] --get-all name [value-regex]
git config [<file-option>] [type] [--show-origin] [-z|--null] [--name-only] --get-regexp name_regex [value-regex]
git config [<file-option>] [type] [-z|--null] --get-urlmatch name URL
git config [<file-option>] --unset name [value-regex]
git config [<file-option>] --unset-all name [value-regex]
git config [<file-option>] --rename-section old_name new_name
git config [<file-option>] --remove-section name
git config [<file-option>] [--show-origin] [-z|--null] [--name-only] -l | --list
git config [<file-option>] --get-color name [default]
git config [<file-option>] --get-colorbool name [stdout-is-try]
git config [<file-option>] -e | --edit
须要注意的是:Git配置被设置在文本文件中,能够经过编辑相关的文本文件来修改 这些设置,但强烈不建议这样作,由于很容易出现错误,而且有很容易修改到其余设置
须要在Git中配置的一件首要事情就是你的身份,这要根据有用户名和电子邮件来肯定。Git指望你设置这两个值,这是由于Git是一个源管理系统。因为其目的是随时间推移追踪用户所作的变动,所以它但愿知道谁在进行哪些变动,这样一来它才能记录他们
若是不指定这些值,那么Git将用当前登陆的用户ID和机器名来填充它们。有可能这并不是咱们但愿系统最终使用的身份。能够经过git config --global user.name <name>和git config --global user.email<email address>
提示:
在Git中设置电子邮件地址时,并不会对其进行验证。不过Git中的一些高级功能会使用这个电子邮件地址,该功能容许完成建立和共享变动的修订和压缩版本这样的任务。对于该功能而言,使用一个正确的电子邮件地址是很重要的。
global选项是告知Git应该在多大范围内使用这一配置的一种方式--它应该应用到哪些仓库。Git模型旨在应用于多个较小的仓库,而不是较少的总体单一式仓库。因为用户一般会使用多个仓库,所以必须在每一个仓库中配置相同的设置会很不方便。所以,Git提供了简化选择配置值范围的选项。有三种可用的级别配置:系统、全局和本地
①系统:系统级别的配置意味着一个配置值会被应用到指定系统上的全部仓库,除非在一个较低的级别上对其重写。为了确保配置值应用在系统级别,要为config命令指定--system选项,好比git config --system core.autocrlf true
②全局:全局级别的配置代表配置值适用于特定用户的全部仓库,除非在本地级别对其进行了重写。不然这就是用户要使用的最多见级别,由于它避免了必须为每个仓库设置值的工做。这些设置被存储在每一个用户的主目录中的一个名为.gitconfig的文件中
③本地:在本地级别设置一个配置值意味着该设置只应用与一个仓库的上下文中,这对于指定一个特定仓库的惟一设置的场景来讲会颇有用。若是须要临时重写一个较高级别的设置,那么它也会颇有用。本地仓库的配置会被存储在本地Git仓库的.git/config中
④设置的层次结构
Git会使用一种特定的搜索顺序来找出配置好的设置。首先会在本地仓库配置中查找一个设置,而后查找全局配置,最后查找系统配置。若是以该搜索顺序找到一个指定值,那么这个值就被使用了。
⑤查看配置值
要查看一个特定配置设置具备什么值,可使用git config <setting> ,好比git config user.name
⑥列出配置设置
有时可能须要移除特定级别上的一个用户设置。Git为此提供了unset选项
$ git config --unset <other options> <value to remove>
这里的其余选项指的是其中一个范围选项。
⑦列出配置设置
与浏览配置值有关的另外一个选项是--list,为git config提供这个list选项会生成一份全部配置设置的列表。默认状况下,这份列表包含无限定的本地、全局和系统设置。
一、git init
二、git clone
一、git init揭秘
二、进一步深刻了解Git仓库
三、将config命令映射到配置文件
四、建立参数化别名