GIT笔记
21.查看不同版本直接的变动和差异
情景:某次将自己的分支版本和远程master合并解决冲突后发现以前能够正常运行的程序的无法正常运行了
但又忘记合并解决冲突时修改了哪些代码。
解决方案:
1- 通过git log 查找某次commit的hash值
git log --graph --oneline --decorate
![](//images0.cnblogs.com/blog2015/434879/201504/291038262401017.png)
2- 查看那些文件发生了变化(HEAD是当前分支版本可以换成其他的)
git diff 2fcbff8..HEAD --stat
3- 查看具体变化
git diff 2fcbff8..HEAD
4-查看文件的每一个详细的历史修改,如果没有-p选项,只显示提交记录,不显示文件内容修改
git log –p filename
git log –p –3 filename //显示
5- 查看文件的每一行是哪个提交最后修改的
git blame filename
6- 查看载入但并未提交的文件差异
git diff --staged
git diff 和git log -p效果是一样的
7- 列出某个文件的具体修改历史然后再通过commit的hash值查看某次改动的具体修改
git log --oneline test.cpp
git show 12e9624cae843f2b5 //某个具体修改的hash值
8- 查看载入但并未提交的变更
git diff --stage
9- 在合并某分支前查看变更内容
git diff dev...master
22.文件删除与重命名
git rm test.cpp //删除,这与直接rm掉是有区别的
git mv test.cpp test.hpp //重命名,这两个操作记得都要提交哦
23.文件恢复
git reset 9aa51d89799716aa68cff3f test.cpp //通过hash恢复到某个历史版本
git reset test.cpp //没有提交的话可以恢复到当前版本HEAD
.....完善中