1、git的几种状态
new file | 新创建的文件第一次被 git add之后的状态 |
---|---|
untracked files | 工作区新添加的文件,没有加入到git版本控制中 |
modified | 1、修改的文件没有用加入暂存区(changes not staged for commit)2、修改的文件加入暂存区(changes to be commited) |
not staged | 文件被修改了,没有加入到暂存区(changes not staged for commit) |
nothing to commit | 文件全部提交到版本库了(working directory clean ) |
2、git add 和 git commit 两个命令的背后的原理
image3、基于git log 查看提交历史
使用 git log 可以看到每次 commit 的信息,包括 commit 的 SHA-1、日期、提交说明。
最常用的log命令git log --oneline --abbrev-commit --graph 这个最有用,可以看到整个commit的树形结构,包括如何合并的,就显示每个 commit 的SHA-1 和提交说明,同时SHA-1 显示短值
--oneline ,每次提交的历史,一行显示完,不要分成几行
--abbrev-commit:commit的标识符,SHA-1 hash值,40位的,显示一个短值。
--graph:显示图形化的commit历史,如果有多个分支的话,commit提交历史会形成一个树的形状,用graph可以看清楚这颗commit树长什么样子
4、深入图解git提交历史
在执行 commit之后,会将暂存区的中的代码提交到版本库中的master分支上,而HEAD指针就指向master分支的最新一次提交。
所以我们就很清楚,其实可以多次修改代码,多次 git add 到暂存区,而git commit 就是一次性将暂存区中的代码,全部提交到 master分支上,master分支会出现一个最新的 commit,也就是最新的一个版本,而HEAD最为一个指针,永远指向master分支的最新一次commit的代码版本。
网友评论