git命令讲解之前置说明 与 git add追踪文件

139 阅读3分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 N 天,点击查看活动详情

讲解辅助

语法规则讲解

[]括住的内容为可选,|代表两边的写法的效果一样,可使用任何一种写法。

内容...表示列表,通常表示:...前的那种类别的内容的列表,列表的间隔符可能为空格。

#表示注释,语法中没有指定内容,这是对语法的解释。

--选项

由于语法规则的设定所以可能会有其他的选项也是字符串类型,与文件路径冲突,若是直接写一段字串,git无法分清它为文件路径还是其他选项。所以使用这个选项来进行区分,当出现这个选项之后,下面所有的选项都会被认为是文件路径。

例如:git diff [branch] [--] [file...]git diff [file...]【该命令弱势运行会报错的】会冲突,所以都是写为git diff -- [file...]【这下不会报错了】

<pathspec>常用语法

表示路径规范

  • 可以为绝对路径或是相对路径

  • 使用*表示以字符串的形式匹配尽可能多的任意字符,不过注意:cmd命令行中<pathspec>是否用引号括住对结果无影响,但是在Git Bash中使用引号会影响结果,用引号括住的内容可以搜索子目录,没有括住的不可以搜索子目录中的文件。【cmd中只能是双引号,Git Bash中单双引号都可以】

    • 例如:*.* 会匹配所有以任意字串为后缀名的文件,包括子目录下的文件【`*``也是一样的效果】也会被匹配。
  • 使用?可以在以字符串的形式匹配任意单个字符,但是只能匹配当前目录的文件,无法匹配子目录下的文件。

  • 使用[要匹配的字符]可以在以字符串的形式匹配任意单个在中括号中出现的字符,同样无法匹配子目录下的文件。

  • .表示当前目录下的所有文件

追踪文件git add

主要作用

追踪指定的文件,使得这些文件的状态变为已暂存,并根据修改的内容更新文件的SHA-1 哈希值。

会将新建或修改过的内容拷贝到.git\object文件夹中,文件名称为之前提过的SHA-1 哈希值。并修改.git\index文件中的内容,该文件中为项目中文件的索引。

默认情况下,该命令不会添加.gitignore中指定的忽略的文件,若是命令中明确指明了要被忽略的文件,则该命令执行失败。但是若是模糊指定,则会自动忽略。

语法

git add [--verbose | -v]   #追踪的同时,显示追踪了哪些文件
                           #输出中add 文件名表示添加,remove 文件名表示删除】
        [--dry-run | -n]   #不实际添加指定文件,仅仅显示要添加哪些文件,
                                #显示的内容与-v显示的一样
        [--force | -f]     #允许添加被忽略的文件
        [--interactive | -i] #进入交互模式
        [--patch | -p]     #进入另一种交互模式
        [--edit | -e]      
        [--[no-]all | --[no-]ignore-removal | [--update | -u]] 
        [--sparse]
        [--intent-to-add | -N] 
        [--refresh] 
        [--ignore-errors] 
        [--ignore-missing] 
        [--renormalize]
        [--chmod=(+|-)x] 
        [--pathspec-from-file=<file> [--pathspec-file-nul]]
        [--] #此选项可用于从文件列表中分离命令行选项(当文件名可能被误认为命令行选项时非常有用)
        [<pathspec>…​]#文件路径列表,用空格作为间隔

句末语

开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 N 天,点击查看活动详情