git版本日志
我们已经对文件做了二次修改 也就是说文件具有两个版本。
git支持我们对历史版本记录进行查看。
git log
Ps:
• git记录了每个文件的提交代码 提交人 提交日期以及提交文件时的备注
• 注意到提交代码后有HEAD->master
• 很敏感可以联想到指针
• HEAD(头指针)是git用来追踪标记git文件状态的指针
• 也就是说再上一次我们二次修改文件后HEAD又重新标记在了master
• 对于工作区 暂存区 版本库三者而言 其实都是用HEAD来标记的
• HEAD指向当前文件所处的文件状态
– git log --pretty=oneline (git log的简洁版 没有先后标注)
– git reflog(git log简洁版 有先后标注)
Ps:
• 可以看到对比方式2,日志中多出了HEAD@{0|1}的标记
• 我们知道gitDemo是我们第一次添加时候的备注
• 而HEAD@{1}应该就是标记提交的前后顺序
• 可以发现第二次提交的HEAD是0
• 我首先想到的是栈 第一次的提交状态入栈为0
• 第二次的提交状态入栈为0 第一次为1
• 之后我又提交了一次 发现确实是这样 出现了012 的顺序
• 至于是不是栈的方式储存 我这里没有专门去查
版本回退
知道了历史版本之后 可以根据版本号来回退到之前的版本。
情景:对于已经提交的版本,突然感觉有问题想回退到上一次的版本。
‘’‘cmd
git reflog
git reset --hard version_code
‘’’
Ps:
• 版本号很长 我们取前面一部分就可以 后面git会为我们补全
git reset --hard HEAD"^" :返回上一次版本
Ps:
• 注意到HEAD是git的头指针后面跟了“^”
•^代表上一次 因为windows会把^当作转义符 类似/t/n等
• 所以这边用引号括起来 或者 可以直接用~1|2|3 代表回退版本
• 另外 这里再一次说明 git使用HEAD头指针的移动来控制版本的 并不是文件本身恢复与删除 它记录的只是文件每次版本做过的修改。
• 如果此时又后悔返回了 可以根据日志版本号回到最新
撤销修改
撤销对工作区的修改 git check – file.后缀名
撤销对暂存区的修改 git reset HEAD file.后缀名
删除文件
已经提交到本地仓库的文件 删除分两种情况:
–1 确认删除
确认删除就是把本地文件删除后 提交删除命令 将仓库内记录也删除
git rm file.txt
git commit -m"remove file
如果之前把文件push远程仓库的话 把这个删除的commit也push到远程即可删除远程仓库文件。
– 2 删错了
git checkout – file.后缀名 因为删除文件其实是工作区域的修改 所以撤销修改即可。