2. 版本管理
2.1 查看仓库当前的状态
- 命令:git status
2.2 查看文件具体被修改了什么内容
- 命令: git diff
2.3 提交修改
- 和提交新文件一样
- 第一步是git add
- 可以使用git status 查看将被提交的修改
- 第二步是git commit -m
2.4 版本回退
- 可以把commit理解为git仓库的快照
- 如果误删除文件或者打乱了,可以从最近的一个commit恢复。
- 查看修改历史记录
- 命令: git log
- git log命令显示从最近到最远的提交日志。
- 如果嫌输出信息太多
- 加—pretty=oneline 参数
- 版本的表示
- 在git中 “head”表示当前版本,也就是最新的提交。
- 上个版本就是head^
- 上上个版本就是head^^
- 往上100个版本写成head~100
- 回退到上一个版本
- 命令: git reset —hard HEAD^
- 参数—hard的意义
- 后面在讲
- 返回之前被回退的版本
- 就是比如说,你从最新的A版本回退到B版本,现在又想回到A版本了
- 命令: git rese —hard <之前版本的id的前5位>
- 版本号没必要写全,只要能确定是哪个版本就行
- git版本回退快
- 因为在Git内部有个指向当前版本的HEAD指针
- 回退时仅仅改动head指针的指向
- 命令记录
- git会记录你的每一次命令
- 使用命令git reflog可以查看历史命令
2.5 工作区与缓存区
- 工作区
- 能看见的目录
- 例如仓库所在的目录
- 版本库
- 就是隐藏目录.git
- 不算工作区
- 暂存区
- 就是.git目录下的index
- 自动创建的第一个分支
- master
- 指向master的指针叫HEAD
- 文件命令的解释
- 命令:git add
- 把文件修改添加到暂存区
- 命令:git commit
- 一次性把暂存区的所有内容提交到当前分支
- 命令:git add
2.6 管理修改
- Git跟踪并管理的是修改,而非文件
- 查看工作区和版本库里面最新版本的区别
- 命令: git diff HEAD – readme.txt
2.7 撤销修改
- 命令git checkout – readme.txt意思就是,把readme.txt文件在工作区的修改全部撤销,这里有两种情况:
- 一种是readme.txt自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;
- 一种是readme.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。
- 总之,就是让这个文件回到最近一次git commit或git add时的状态。
- 文件修改已经添加暂存区
- 第一步,命令git reset HEAD 可以把暂存区的修改撤销掉(unstage),重新放回工作区:
- 第二步,命令: git checkout – 可以丢弃工作区的修改
2.8 删除文件
- 用rm命令把文件从工作区删除
- 确实要删除文件
- 第一步,用git rm 提交删除文件这个”修改”到暂存区。
- 第二步,用git commit -m 提交删除文件这个”修改”到版本库。
- 属于误删除文件