一、 介绍
1、Git是一种分布式的版本控制器,客户端不只提取最新版本的文件快照,而是把代码仓库完整的镜像下来,这样任何一处协同工作的服务器发生故障,事后都可以用任何一个镜像出来的本地仓库恢复,因为每次操作都是一次对代码库的备份。
分布式版本控制系统
Git保存每次更新时的文件快照如下:
2、工作目录下文件的状态:已跟踪和未跟踪。
已跟踪:被纳入版本控制管理的文件
未跟踪:既没有上次更新时的快照,也不在当前的暂存区
二、 初次使用前的配置
1、 git config --global user.name “用户名” global表示:本用户目录下
2、 git config --global user.email “用户邮箱”
3、 git config --list 查看配置信息
4、 git help <verb> 获取帮助信息
三、 Git基础操作
1、 git init 对某个项目进行管理时在工作目录初始化新仓库。
2、 git add [file_name] 对文件file_name进行跟踪。
3、 git commit -m “[information]” 。提交
4、 git commit -a -m “[information]” 可以跳过git add
5、 git clone [url] 克隆仓库。
6、 git status 查看当前文件状态。
7、 git diff 查看具体修改了什么地方,比较工作目录和暂存区之间的差异。
8、 git rm file.name 移除文件。
9、 git rm --cached path/file 忽略已经被git管理的文件。
10、git mv file_from file_to 移动文件。
11、git log -p 2查看最近2次提交历史
四、 忽略某些文件
1、创建.gitignore文件列出要忽略的文件模式。具体格式规范如下:
(1)所有空行或者以注释符号#开头的都会被忽略。
(2)可以使用glob模式匹配。
(3)匹配模式最后跟反斜杠(/)说明忽略的是目录。
(4)要忽略指定模式以外的文件或目录,可以在模式前加上惊叹号(!)取反。
(5)星号(*)表示匹配零个或者多个任意字符。
(6)[abc]匹配任何一个列在方括号中的字符。
(7)问号(?)只匹配一个任意字符。
(8)[0-9]表示匹配0-9两个范围之内的值。
注意:glob是指shell所使用的简化了的正则表达式。
2、例子
# 此为注释 – 将被 Git 忽略
# 忽略所有 .a 结尾的文件
*.a
# 但 lib.a 除外
!lib.a
# 仅仅忽略项目根目录下的 TODO 文件,不包括 subdir/TODO
/TODO
# 忽略 build/ 目录下的所有文件
build/
# 会忽略 doc/notes.txt 但不包括 doc/server/arch.txt
doc/*.txt
# 忽略 doc/ 目录下所有扩展名为 txt 的文件
doc/**/*.txt