git的快速高效
① 直接记录快照,而非差异比较
② 近乎所有操作都是本地执行
SVN的差异比较
好处:节省磁盘空间
缺点:耗时、效率低
git的三种状态
已修改 modified
已暂存staged
已提交 committed
git的基础操作
git init 初始化仓库
git status 检查文件状态 // git status -s
git add 要添加的文件名称 // 跟踪文件 添加到暂存区
git add . // 跟踪所有文件 添加到暂存区
gitreset HEAD 要从暂存区移除的文件名称
git commit -m '新建了index.html文件' // 提交更新文件
git commit -a -m '日志信息' // 跳过使用暂存区域
git rm -f index.js // 从仓库和工作区中同时移除index.js
git rm --cashed index.js // 从仓库中移除index.js 保存工作区中的
忽略文件
创建一个 .gitgnore
文件 .gitignore
的格式规范如下:
① 以 # 开头的是注释
② 以 / 结尾的是目录
③ 以 / 开头防止递归
④ 以 ! 开头表示取反
⑤ 可以使用 glob 模式进行文件和文件夹的匹配(glob 指简化了的正则表达式)
-
星号 * 匹配零个或多个任意字符
-
[abc]
匹配任何一个列在方括号中的字符 (此案例匹配一个 a 或匹配一个 b 或匹配一个 c) -
问号 ? 只匹配一个任意字符
-
两个星号 ** 表示匹配任意中间目录(比如 a/**/z 可以匹配 a/z 、 a/b/z 或 a/b/c/z 等)
-
在方括号中使用短划线分隔两个字符, 表示所有在这两个字符范围内的都可以匹配(比如 [0-9] 表示匹配所有 0 到 9 的数字)
查看提交历史
// 按时间先后顺序列出所有的提交历史,最近的提交在最上面
git log
# 只展示最新的两条提交历史,数字可以按需进行填写
git log -2
# 在一行上展示最近两条提交历史的信息
git log -2 --pretty=oneline
回退到指定的版本
# 在一行上展示所有的提交历史
git log --pretty=oneline
# 使用 git reset --hard 命令 根据指定的提交id回退到指定版本
git reset --hard ID
# 在旧版本中使用 git reflog --pretty=oneline 命令,查看命令操作的历史
git reflog --pretty=onelone
# 再次根据最新的提交 ID,跳转到最新的版本
git reset --hard <CommitID>