1分钟快速掌握Git(中级)

1.7k words

Git 中级实战指南

高效协作与代码管理


一、核心工作流模型

  1. Git Flow 标准流程

    • 主分支main(稳定版)、develop(开发版)
    • 辅助分支
      • feature/*:功能开发(如 feature/user-login
      • hotfix/*:紧急修复(如 hotfix/pay-bug
      • release/*:预发布准备
    • 操作示例
      1
      2
      3
      4
      # 创建功能分支  
      git checkout -b feature/new-feature
      # 开发完成后合并到 develop
      git checkout develop && git merge feature/new-feature
  2. GitHub Flow 简化版

    • 直接在 main 分支开发,通过 Pull Request 合并
    • 适用:小团队快速迭代

二、高阶命令与场景

场景 命令/操作 作用
精准提交 git add -p → 交互式选择代码块暂存 将大修改拆分为多个逻辑提交
历史重构 git rebase -i HEAD~3 合并/修改/删除最近3次提交
跨分支移植 git cherry-pick <commit> 选择性应用特定提交到当前分支
紧急恢复 git refloggit reset --hard <id> 找回误删提交或回退到任意历史状态
冲突解决进阶 git mergetool 集成 Beyond Compare 可视化解决复杂冲突

三、协作开发全流程

  1. 克隆与同步

    1
    2
    3
    git clone git@github.com:user/repo.git  
    git fetch origin # 同步远程分支列表
    git pull origin main # 拉取并合并远程主分支
  2. 分支协作策略

    • 开发新功能
      1
      2
      git checkout -b feature/auth  
      # 开发完成后发起 Pull Request
    • 修复线上问题
      1
      2
      3
      git checkout -b hotfix/crash  
      git push origin hotfix/crash
      # 创建 Pull Request 合并到 main
  3. Rebase 与 Merge 对比

    • Rebase:线性化历史(适合个人分支)
      1
      2
      git checkout feature  
      git rebase main # 将 feature 分支基于最新 main 重写历史
    • Merge:保留分支拓扑(适合团队协作)

四、问题解决实战

  1. 冲突解决四步法

    • 步骤1git pull 触发冲突
    • 步骤2git diff 查看冲突文件
    • 步骤3:手动编辑文件 → 删除 <<<<<<</=======/>>>>>>>
    • 步骤4git add <file>git commit
  2. 误删分支恢复

    1
    2
    git reflog              # 查找分支最后提交的 commit ID  
    git checkout -b restored-branch <commit-id>
  3. 撤销错误提交

    1
    2
    git revert <bad-commit>  # 生成新提交反向抵消  
    git reset --soft HEAD^ # 仅回退提交(保留修改)

五、效率优化技巧

  1. 部分克隆(节省带宽)

    1
    git clone --filter=blob:none git@github.com:user/repo.git  
  2. 稀疏检出(仅拉取必要文件)

    1
    git sparse-checkout set src/  # 仅检出 src 目录  
  3. 别名配置(提升效率)

    1
    2
    git config --global alias.lg "log --graph --oneline"  
    git config --global alias.co "checkout"

六、附:Git 命令速查表

分类 常用命令
分支管理 git branch -d <branch>(删除已合并分支)
远程操作 git remote prune origin(清理无效远程分支)
历史查看 git log --author=<name>(按作者过滤提交)
子模块 git submodule update --recursive

学习路径建议

  1. 先掌握 Git Flow:规范分支管理,避免协作混乱
  2. 熟练 Rebase 与 Cherry-pick:提升历史管理能力
  3. 配置个性化工具链:如 Git Hooks 自动化检查