
1. Git常用命令速查手册从零开始掌握版本控制核心操作第一次接触Git时我被各种命令搞得晕头转向。经过多年实战我整理出这份高频使用场景的Git命令清单特别适合放在手边随时查阅。不同于官方文档的全面性这里只聚焦实际开发中最常用的20%命令却能解决80%的日常问题。这份手册按照典型工作流编排包含代码提交、分支管理、远程协作等场景特别强化了容易混淆的git fetch操作细节。每个命令都附带真实案例说明你可以直接复制粘贴到终端使用省去反复查阅文档的时间。2. 基础配置与环境搭建2.1 首次使用Git的初始化设置安装Git后第一件事是配置用户信息这些信息会记录在每次提交中# 设置全局用户名和邮箱重要 git config --global user.name 你的姓名 git config --global user.email 你的邮箱example.com # 启用彩色命令行输出提升可读性 git config --global color.ui auto # 设置默认编辑器为VS Code可选 git config --global core.editor code --wait注意公司项目可能需要使用工作邮箱此时可以在项目目录下单独配置覆盖全局设置cd /path/to/project git config user.email workcompany.com2.2 常用配置调优这些配置能显著提升日常使用体验# 设置命令别名简化常用操作 git config --global alias.co checkout git config --global alias.br branch git config --global alias.ci commit git config --global alias.st status # 设置文件大小写敏感Mac/Linux默认不敏感 git config --global core.ignorecase false # 优化大仓库性能适用于Android等大型项目 git config --global core.preloadindex true git config --global gc.auto 2563. 日常开发工作流命令3.1 代码提交三连击这是每天使用最频繁的命令组合# 查看当前修改状态建议第一步总是先执行这个 git status # 添加修改到暂存区注意会忽略.gitignore中定义的文件 git add . # 添加所有修改 git add -u # 只添加已跟踪文件的修改 git add -p # 交互式选择修改片段 # 提交到本地仓库养成写清晰提交信息的习惯 git commit -m 修复登录页面的CSS兼容性问题经验git add -p是我最推荐的高级用法可以逐块审查代码变更避免不小心提交调试代码。3.2 撤销与修改提交误操作后的补救措施# 撤销工作区修改危险不可恢复 git checkout -- file # 撤销暂存区修改将add的内容移出 git reset HEAD file # 修改最后一次提交适用于漏文件或写错信息 git add forgotten_file.js git commit --amend # 回退到指定提交慎用会删除后续提交 git reset --hard commit-hash4. 分支管理实战技巧4.1 基础分支操作# 查看所有分支当前分支会用*标出 git branch -vva # 创建新分支基于当前分支 git branch feature-auth # 切换分支会更新工作区文件 git checkout feature-auth # 创建并切换分支常用组合 git checkout -b hotfix-bug # 删除已合并分支保持仓库整洁 git branch -d old-feature4.2 分支合并与冲突解决# 将feature分支合并到当前分支 git merge feature-auth # 遇到冲突时查看冲突文件 git status # 手动解决冲突后标记为已解决 git add resolved_file.js git commit提示推荐使用git mergetool调用可视化工具解决复杂冲突配置方法git config --global merge.tool vscode git config --global mergetool.vscode.cmd code --wait $MERGED5. 远程仓库协作指南5.1 远程仓库基础操作# 克隆远程仓库首次获取项目 git clone https://github.com/user/repo.git # 查看远程仓库信息 git remote -v # 添加新的远程仓库 git remote add upstream https://github.com/other/repo.git # 获取远程分支但不合并重要 git fetch origin5.2 git fetch深度解析这是最容易误解的命令之一与git pull的区别# 仅获取远程最新数据安全操作 git fetch origin # 查看远程分支更新情况 git log origin/main --oneline # 将远程分支合并到当前分支等效于fetchmerge git pull origin main # 推荐使用rebase方式拉取保持线性历史 git pull --rebase origin main关键理解git fetch相当于刷新远程数据不会影响本地工作区。而git pullfetchmerge可能产生合并提交。5.3 推送与跟踪分支# 推送本地分支到远程首次需要-u参数建立跟踪 git push -u origin feature-auth # 删除远程分支冒号前加空格 git push origin :old-branch # 更新远程分支列表清理已删除分支 git remote prune origin6. 高级场景与救命命令6.1 找回丢失的提交# 查看所有操作记录包括已删除提交 git reflog # 重置到指定操作挽救误删分支 git reset --hard HEAD{3}6.2 临时保存工作现场# 保存当前工作进度包括未提交修改 git stash # 查看保存的进度列表 git stash list # 恢复最近保存的进度 git stash pop # 清除所有保存的进度 git stash clear6.3 重写提交历史# 交互式变基修改最近3次提交 git rebase -i HEAD~3 # 强制推送到远程仅限个人分支 git push -f origin feature警告强制推送会覆盖远程历史团队协作分支禁止使用7. 常见问题排查手册7.1 典型错误与解决方案# 错误Updates were rejected because the remote contains work... # 原因本地落后于远程分支 git fetch origin git rebase origin/main # 错误Your local changes to the following files would be overwritten... # 原因修改了未提交的文件 git stash git pull git stash pop # 错误fatal: refusing to merge unrelated histories # 原因两个独立仓库需要强制合并 git merge origin/main --allow-unrelated-histories7.2 性能优化技巧# 清理历史大文件减小仓库体积 git filter-branch --tree-filter rm -f large_file.zip HEAD # 重新打包对象优化本地存储 git gc --aggressive # 查看仓库体积分布 git count-objects -vH这份手册已经覆盖了我日常开发中95%的Git使用场景。建议打印出来贴在工位旁边遇到问题先查这里大多数情况都能快速找到解决方案。对于更复杂的场景记住Git的黄金法则所有丢失的提交都能在reflog中找到只要别乱用git reset --hard你的代码就永远不会真正丢失。