故障排查技巧

本节将介绍一些常见的 Git 问题排查和解决技巧,帮助你快速定位和解决问题。

提交相关问题

  1. 撤销最近的提交

    # 保留修改
    git reset --soft HEAD^
    
    # 丢弃修改
    git reset --hard HEAD^
  2. 修改提交信息

    # 修改最近的提交信息
    git commit --amend -m "新的提交信息"
    
    # 修改历史提交信息
    git rebase -i HEAD~3

分支问题

  1. 找回已删除的分支

    # 查看分支的最后一次提交
    git reflog
    
    # 恢复删除的分支
    git checkout -b 分支名 提交ID
  2. 解决分支混乱

    # 查看分支关系
    git log --graph --oneline --all
    
    # 重置分支到指定提交
    git reset --hard 提交ID

合并冲突

  1. 预防冲突

    # 在合并前查看可能的冲突
    git merge --no-commit --no-ff 分支名
    
    # 取消试验性合并
    git merge --abort
  2. 解决冲突

    # 使用图形化工具
    git mergetool
    
    # 标记冲突已解决
    git add 文件名

性能问题

  1. 仓库变慢

    # 检查大文件
    git rev-list --objects --all | git cat-file --batch-check='%(objecttype) %(objectname) %(objectsize) %(rest)' | sort -nr -k3
    
    # 压缩仓库
    git gc --aggressive --prune=now
  2. 网络问题

    # 测试连接
    git ls-remote origin
    
    # 设置代理
    git config --global http.proxy http://proxy-server:port

数据恢复

  1. 恢复删除的文件

    # 从最近的提交恢复
    git checkout HEAD -- 文件名
    
    # 从特定提交恢复
    git checkout 提交ID -- 文件名
  2. 恢复已清理的修改

    # 从 reflog 恢复
    git reflog
    git reset --hard HEAD@{1}

最佳实践

  1. 定期备份仓库
  2. 保持良好的提交习惯
  3. 及时处理冲突
  4. 使用合适的工具辅助排查
  5. 记录常见问题的解决方案