1、git init
?初始化仓库
$ git init
2、git add
?指定所需要的文件来进行跟踪。
$ git add *.c
$ git add LICENSE
$ git add <directory path> :如果参数是目录的路径,该命令将递归地跟踪该目录下的所有文件。
这是一个多功能命令:可以用它开始跟踪新文件,或者把已跟踪的文件放到暂存区,还能用于合并时把有冲突的文件标记为已解决状态等。
3、git clone
?克隆现有的仓库。
- 克隆Git的链接库libgit2
$ git clone https://github.com/libgit2/libgit2 - 克隆远程仓库时,自定义本地仓库的名字
$ git clone https://github.com/libgit2/libgit2 mylibgit
4、git status
?查看哪些文件处于什么状态。
4.1、跟踪新文件
示例: $ git add README ?此时再运行git status 命令,会看到README文件已被跟踪,并处于暂存状态:
只要在Changes to be committed 这行下面的,就说明是已暂存状态。如果此时提交,那么该文件在你运行git add 时的版本将被留存在后续的历史纪录中。
4.2、暂存已修改的文件
&esmp;修改一个已被跟踪的文件。如果你修改了一个名为CONTRIBUTING.md 的已被跟踪的文件,然后运行git status 命令,会看到下面内容:
? 文件CONTRIBUTING.md 出现在Changes not staged for commit 这行下面,说明已跟踪文件的内容发生了变化,但还没有放到暂存区。要暂存这次更新,需要运行git add 命令。
?现在两个文件都已暂存,下次提交时就会一并记录到仓库。
4.3、状态简览
git status -s 或git status --short :用于简短的方式查看更改。
?README 文件在工作区已修改但尚未暂存。lib/simplegit.rb 文件已修改且已暂存。Rakefile 文件已修改,暂存后又作了修改,因此该文件的修改中即有已暂存的部分,又有未暂存的部分。
- 新添加的未跟踪文件前面有 ??标记。
- 新添加到暂存区中的文件前面有A标记。
- 修改过的文件前面有M标记。
输出中有两栏,左栏指明了暂存区的状态,右栏指明了工作区的状态。
5、.gitignore
?一般我们总会有些文件无需纳入Git的管理,也不希望它们总出现在未跟踪文件列表。通常都是些自动生成的文件,比如日志文件,或者编译过程中创建的临时文件等。在这种情况下,我们可以创建要给名为.gitignore 的文件,列出要忽略的文件的模式。
文件gitignore 的格式规范如下:
- 所有空行或者以
# 开头的行都会被Git忽略。 - 可以使用标准的glob模式匹配,它会递归地应用到整个工作区中。
- 匹配模式可以以(
/ )开头防止递归。 - 匹配模式可以以(
/ )结尾指定目录。 - 要忽略指定模式以外的文件或目录,可以在模式前加叹号(
! )取反。
所谓的glob模式是指shell所使用的简化了的正则表达式。星号(* )匹配零个或多个任意字符;[abc] 匹配任何一个列在方括号中的字符(这个例子要么匹配一个a,要么匹配一个b,要么匹配一个c);问号(? )只匹配一个任意字符;如果在方括号中使用短划线分隔两个字符,表示所有在这两个字符范围内的都可以匹配(比如[0-9] 表示匹配所有0到9的数字)。使用两个星号(** )表示匹配任意中间目录,比如a/**/z 可以匹配a/z 、a/b/z 或a/b/c/z 等。
.gitignore 文件示例:
*.a
!lib.a
/TODO
build/
doc/*.txt
doc/**/*.pdf
|