GIT应对异常操作

之前整理过GIT简易操作手册与分支管理策略,基本可以满足日常的团队协作,进行合理的项目分支管理。但是在很多时候,我们需要查询具体的提交变更、撤销、回滚等操作以应对异常状况。现在这篇文章则主要记录补充应对日常开发中的异常处理。

  • 查看操作记录[log]
git log //显示提交日志
git log --graph [filename] //绘制提交线索[拓扑图],可以指定文件
git log --author [yourname] //查看指定用户的提交记录
git log filename //查看指定文件的commit记录
git log --oneline //查看历史记录的见解版本
git log --reverse //逆向显示所有日志
git log --oneline --before={1.weeks.ago} --after={2020-09-09} --no-merges 
//查看项目中一周前且在2020.09.09之后的所有提交
//--no-merges 隐藏合并提交
//--since 
//--before
  • 查看操作记录[reflog]
git reflog //查看分支的所有操作记录[包括commit和reset操作[包括被删除的commit记录(reset操作产生),log不能查看已经删除的commit操作]]
git reflog --pretty=short master
git reflog --date=iso
git reflog --pretty='%cd %h %gd %gs' //显示格式化日期
git reflog --pretty='%cd %h %gd %gs' --author ranruiqin //指定用户日志
 git reflog --pretty='%cd %h %gd %gs' branch_name //指定分支日志
  • 查看指定文件的修改记录
git blame [filename]
  • 撤销
    把filename文件在工作区的修改撤销到最近一次git add 或 git commit时的内容
git checkout -- filename
  • 差异对比
git diff //比较暂存区与工作区
git diff [sha] [filename] //对比指定文件,指定版本与当前工作区的文件差异
git diff commit-id //比较工作区与commit-id
git diff [<commit-id>] [<commit-id>] //比较两个commit-id
  • 版本库对象的内容、类型及大小信息
git cat-file -t [sha] //显示对象类型
git cat-file -p [sha] //根据对象类型,以优雅的方式显示对象内容
// 对象类型
  - 块(blob) 
  - 树(tree)
  - 提交(commit)
  - 标签(tag)
  • 查看丢失的commit[dangling commit]
    没有任何分支指针或头指针指向,等待回收
    查看项目中存在的 dangling commit
    [验证数据库中对象的连通性和有效性]
git fsck --lost-found //返回dangling commit的类型说明以及该提交的sha1值
  • 查看提交文件变化
git show [sha1] --stat //显示文件修改统计信息[多少文件变更]
git show [sha1] filename //查看指定提交中指定文件的变化
git show -s --pretty=raw [sha1] //格式化查看提交变化
原文地址:https://www.cnblogs.com/biby/p/13637640.html