在开始使用Git时,重要的是要对其进行配置,这样它在特定的环境里才能正常工作。我们还能够以喜欢的方式管理内容以及与Git交互

一、在Git中执行命令

  Git命令行的普遍应用形式。通常如下:

    git <git-options> <command> <command-options> <operands>

  下表描述了这一形式的不同部分

元素 描述 示例 备注
git 运行git的命令 git  
<git-options> Git本身的全局选项,这些选项也可以指定要执行的函数

git –worktree

git –version

这些选项中的一些可能旨在用于独立操作(git –version),而其它一些会修改其他命令所使用过的值(git –worktree)
<command> 要执行的Git命令 git –push  
<command-options> 对于所指定命令的选项 git commit -m “comment” 如果未指定可能会使用默认选项,选项也可能具有可被选择以便进一步限定该选项的值
<operands> 命令要操作的操作数 git add *.c 特定于要执行的命令;示例包括工作目录中的文件,仓库中的分支或SHA1,或者特定的设置或值

  1、操作数类型

    Git可以采用不同类型的操作数,他们就是要进行操作的对象的规范。在没有指定操作数时,命令会针对它在仓库、暂存区域或工作目录树范围中找到的所有合格项来进行操作。

  2、高层命令和底层命令的对比

    高层命令是为了面向用户,它们更常被使用以及更加便利,通常会提供较高级别的功能。底层命令会在较低级别发挥作用,也并不打算让普通用户使用。可以使用高层命令或底层命令来完成Git中的某些职能。不过,通常需要几个具体的底层命令才能完成一个高层命令所执  行的任务

    下表列出了Git中可用的高层命令

命令 目的
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 管理多个工作树

    关于底层命令的列出此处略去

  3、指定参数

    提供给Git或者Git命令的参数可以被缩写成单个字母或者完整拼写成单词。这里要重要提的一点是,如果参数被完整拼写,就必须在前面使用两个连字符,比如–global。如果参数是缩写的,那么只需要一个连字符,比如-a。

  4、自动完成

     当开始输入一个命令或者为一个命令输入参数时,Git提供了一项有帮助的自动完成特性,它可以完成两件事情

提供可以完成当前输入文本的用于命令或参数的有效值–如果存在多个有效选项的话
自动完成当前输入的命令或参数–如果只有一个有效选项的话

      下面是两个示例。第一个是命令的示例。如果输入git c,然后按下Tab键,不会发生任何事情,因为存在多个以c开头的命令。

    如果再次按下Tab键,Git会帮助显示所有以c开头的命令。在这种情况下,它还会向上滚动该列表并且让你处于可以继续输入所选命令的提示符处

    Git配置和设置-风君雪科技博客

     下面是另一个例子,其中要使用更多的字母来缩小可用的命令范围

    Git配置和设置-风君雪科技博客

    提示:

    在尝试为一个选项使用自动完成时,要确保已经用双连字符(–)语法作为该选项的开头,而不是仅仅使用单个连字符

二、配置Git

  为了设置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配置被设置在文本文件中,可以通过编辑相关的文本文件来修改 这些设置,但强烈不建议这样做,因为很容易出现错误,并且有很容易修改到其他设置

  1、告知git你的身份

  需要在Git中配置的一件首要事情就是你的身份,这要根据有用户名和电子邮件来确定。Git期望你设置这两个值,这是因为Git是一个源管理系统。由于其目的是随时间推移追踪用户所做的变更,因此它希望知道谁在进行哪些变更,这样一来它才能记录他们

  如果不指定这些值,那么Git将用当前登录的用户ID和机器名来填充它们。有可能这并非我们希望系统最终使用的身份。可以通过git config –global user.name <name>和git config –global user.email<email address>

  提示:

    在Git中设置电子邮件地址时,并不会对其进行验证。不过Git中的一些高级功能会使用这个电子邮件地址,该功能允许完成创建和共享变更的修订和压缩版本这样的任务。对于该功能而言,使用一个正确的电子邮件地址是很重要的。

  2、配置范围

  global选项是告知Git应该在多大范围内使用这一配置的一种方式–它应该应用到哪些仓库。Git模型旨在应用于多个较小的仓库,而不是较少的整体单一式仓库。由于用户通常会使用多个仓库,因此必须在每个仓库中配置相同的设置会很不方便。因此,Git提供了简化选择配置值范围的选项。有三种可用的级别配置:系统、全局和本地

  ①系统:系统级别的配置意味着一个配置值会被应用到指定系统上的所有仓库,除非在一个较低的级别上对其重写。为了确保配置值应用在系统级别,要为config命令指定–system选项,比如git config –system core.autocrlf true

  ②全局:全局级别的配置表明配置值适用于特定用户的所有仓库,除非在本地级别对其进行了重写。否则这就是用户要使用的最常见级别,因为它避免了必须为每一个仓库设置值的工作。这些设置被存储在每个用户的主目录中的一个名为.gitconfig的文件中

  Git配置和设置-风君雪科技博客

  ③本地:在本地级别设置一个配置值意味着该设置只应用与一个仓库的上下文中,这对于指定一个特定仓库的唯一设置的场景来说会很有用。如果需要临时重写一个较高级别的设置,那么它也会很有用。本地仓库的配置会被存储在本地Git仓库的.git/config中

  ④设置的层次结构

  Git会使用一种特定的搜索顺序来找出配置好的设置。首先会在本地仓库配置中查找一个设置,然后查找全局配置,最后查找系统配置。如果以该搜索顺序找到一个指定值,那么这个值就被使用了。

  ⑤查看配置值

  要查看一个特定配置设置具有什么值,可以使用git config <setting> ,比如git config user.name

  ⑥列出配置设置

   有时可能需要移除特定级别上的一个用户设置。Git为此提供了unset选项

    $ git config –unset <other options> <value to remove>

  这里的其他选项指的是其中一个范围选项。

    Git配置和设置-风君雪科技博客

  ⑦列出配置设置

  与浏览配置值有关的另一个选项是–list,为git config提供这个list选项会生成一份所有配置设置的列表。默认情况下,这份列表包含无限定的本地、全局和系统设置。

  3、设置行结束符

  4、别名

  5、Windows文件系统缓存

三、初始化仓库

  1、git init

  2、git clone

四、高级主题

  1、git init揭秘

  2、进一步深入了解Git仓库

  3、将config命令映射到配置文件

  4、创建参数化别名