1. git文件状态图
被git管控的文件只有两种状态:已跟踪或未跟踪
git add 是将未被追踪的文件变为被追踪的文件。此时本地索引中(stage)有该文件信息,stage记录文件的变化,但是还未提交到本地仓库。(暂存操作)
git commit 将本地索引中的文件修改提交到本地仓库中。此时文件状态变为unmodified,工作目录、索引和本地仓库中的文件内容一样。(提交操作)
当被git管理的文件被修改时候,文件的状态从unmodified 转换为modified,此时工作目录与索引和本地仓库中的文件内容不一样。
git add 将更改保存到stage 中
git commit 将stage中的文件保存到本地仓库,此时文件状态变为unmodified。
2. git的相关操作
1. 查看文件状态
git status :查看文件状态
git status -s :短格式输出
??:表示未跟踪的文件
M:表示改变的文件
A:表示文件从为跟踪转换为跟踪
使用git status查看到文件有修改,如果想进一步查看修改的内容,可以使用git diff命令
git diff:默认查看stage和工作目录中文件的差异
git diff –cached | –staged :查看stage中文件和本地仓库文件的差异
远程仓库使用的 Git 保存的简写与其对应的 URL
2. git忽略文件
如果确定文件永远不会加入git控制,可以新建隐藏文件
.gitignore
在该文件中写入文件的名称,相对路径,支持标准正则。
匹配模式可以以(/)开头防止递归。
匹配模式可以以(/)结尾指定目录。
要忽略指定模式以外的文件或目录,可以在模式前加上惊叹号(!)取反
3. git提交文件
提交文件
git commit:将stage中的文件存入本地仓库
-a:可以将修改的文件跳过暂存区的存放直接提交到本地仓库(跳过git add操作)
git commit –amend
将stage中的文件追加到上次的提交的版本中,如果stage中无新内容,可以视为修改上次的提交信息
4. git删除文件
删除文件
git rm: 从工作目录文件、stage和本地仓库删除文件
需要使用git commit提交操作,才能生效
如果要删除的文件add 后并未提交,需要使用git rm -f 强制删除
git rm –cached file_name:将文件从仓位中删除,但是工作目录依旧保留
5. git移动文件
移动文件
git mv: 改名后直接add一次
git mv相当于以下操作:
mv old_file.md new_file.md
git rm old_file.md
git add new_file.md
6. 查看提交历史
git log
-p :用来显示每次提交的内容差异
-p -2 :显示最近2次提交的内容差异
–stat:查看每次提交的简略信息
–stat -1:显示最近一次统计的简略信息
7. 撤销操作
撤销操作(谨慎使用):
取消git add 操作
git reset HEAD撤销对文件的修改
git checkout –