目录
一.将文件添加至忽略列
二.日志记录操作
三.比较文件差异
四.还原文件
一.将文件添加至忽略列
一般我们总会有些文件无需纳入Git的管理,也不希望它们总出现在未跟踪文件列表。通常都是些自动生成的文件,比如日志文件,或者编译过程中创建的临时文件等。在这种情况下,我们可以在工作目录中创建一个名为 .gitignore的文件(文件名称固定),列出要忽略的文件模式。
忽略规则
# / 表示 当前文件所在的目录
# 忽略public下的所有目录及文件
/public/*
#不忽略/public/assets,就是特例的意思,assets文件不忽略
!/public/assets
# 忽略具体的文件
index.class
# 忽略所有的class,即忽略后缀为class的文件
*.class
# 忽略 a.class b.class
[ab].class
注意:
- #匹配规则和linux文件匹配一样
- #以斜杠“/”开头表示目录
- #以星号“*”通配多个字符
- #以问号“?”通配单个字符
- #以方括号“[]”包含单个字符的匹配列表
- #以叹号“!”表示不忽略(跟踪)匹配到的文件或目录
例子
手动创建一个user.class文件(在windows下无法创建一个文件名.开头的文件)
touch user.class
touch userDao.class
创建.gitignore文件
touch .gitignore
在.gitignore文件中编写规则
*.class
二.日志记录操作
查看日志
语法结构:
git log
参数:
- --graph : 查看分支合并图
- --oneline : 标记把每一个提交压缩到了一行中
获取执行过的命令
语法结构:
git reflog
三.比较文件差异
diff是指的是两个事物的不同。例如在Linux系统中,diff命令会逐行 比较两个文本的差异然后显示出来。
git diff命令格式
语法结构:
git diff [--cached]
注意:
- --- :标记原始文件
- +++ :标记新文件
- @@ :两个不同文件版本的上下文行号。
- - : 原始文件删除改行
- + :原始文件增加一行
git diff命令是比较工作目录和暂存区的不同,而git diff --cached是比较暂存区和版本库之间的差异。
四.还原文件
对于恢复修改的文件,就是将文件从仓库中拉到本地工作区,即 仓库区 ----> 暂存区 ----> 工作区。
对于修改的文件有三种情况:
- 只是修改了文件,没有任何 Git 操作
- 修改了文件,并提交到暂存区(即编辑之后,git add但没有 git commit -m ....)
- 修改了文件,并提交到仓库区(即编辑之后,git add和 git commit -m ....)
情况I
只是修改了文件,没有任何 git 操作,直接一个命令就可回退
git checkout -- aaa.txt # aaa.txt为文件名
情况II
修改了文件,并提交到暂存区(即编辑之后,git add但没有 git commit )
git log --oneline # 可以省略
git reset HEAD # 回退到当前版本
git checkout -- aaa.txt # aaa.txt为文件名
注意:
情况II 和 情况III 只有回退的版本不一样,对于 情况II,并没有 $ git commit,仓库版本也就不会更新和记录,所以回退的是当 前版本
情况III
修改了文件,并提交到仓库区(即编辑之后git add和gitadd和 git commit -m )
git log --oneline # 可以省略
git reset HEAD^ # 回退到上一个版本
git checkout -- aaa.txt # aaa.txt为文件名
注意:
git reset 版本号 ---- 将暂缓区回退到指定版本,根据 $ git log -- oneline 显示的版本号,可以回退到任何一个版本,也可通过 HEAD 来指定版本。
- HEAD 当前版本
- HEAD^ 上一个版本
- HEAD^^ 上上一个版本