摘要刚开始用Git面对一堆命令不知道从哪下手工作中总是记不住命令每次都要百度直接给答案Git日常工作90%的场景只需要掌握20个左右的命令。本文把这些命令按使用频率排列配上真实场景和操作示例收藏备用用到哪查哪。你要觉得麻烦可以用Easyclaw去搜索git常用命令随用随查不用记。Easyclawhttps://easyclaw.cn/?f494为什么Git是开发者必学技能先看几个数据GitHub全球注册用户超过1亿托管仓库超过4.2亿个Stack Overflow 2024年调查显示超过93%的专业开发者在日常工作中使用GitCSDN上Git相关教程文章阅读量最高的单篇超过39万次Git不是可选项是开发者的基础设施。不会Git团队协作寸步难行。Git常用命令关键词热度参考关键词搜索热度大概竞争度趋势git命令★★★★★ 20万~40万/月极高稳定git常用命令★★★★ 10万~20万/月高稳定git使用教程★★★★ 5万~10万/月高稳定git入门★★★★ 5万~10万/月高稳定git分支命令★★★ 2万~5万/月中稳定git回退版本★★★ 1万~3万/月中稳定git merge和rebase区别★★★ 1万~2万/月中低稳定git常用命令大全★★★ 1万~2万/月中低稳定git提交代码流程★★ 5千~1万/月低稳定git stash用法★★ 3千~8千/月低稳定第一类仓库初始化与配置每个项目只用一次1. 初始化 / 克隆仓库# 在当前目录初始化新仓库gitinit# 克隆远程仓库到本地最常用gitclone https://github.com/user/repo.git# 克隆并指定本地目录名gitclone https://github.com/user/repo.git my-project2. 配置用户信息# 设置全局用户名和邮箱第一次使用Git必做gitconfig--globaluser.name你的名字gitconfig--globaluser.emailyouremail.com# 查看当前配置gitconfig--list第二类日常提交流程每天都在用这是Git最核心的工作流80%的日常操作都在这几个命令里。# 查看工作区状态改了哪些文件gitstatus# 把指定文件加入暂存区gitaddfilename.txt# 把所有改动加入暂存区gitadd.# 提交暂存区内容附上提交信息gitcommit-mfeat: 新增用户登录功能# add commit 合并仅适用于已追踪文件gitcommit-amfix: 修复登录bug第三类远程仓库操作团队协作必备# 查看远程仓库信息gitremote-v# 添加远程仓库gitremoteaddorigin https://github.com/user/repo.git# 拉取远程最新代码fetch mergegitpull origin main# 只拉取不合并gitfetch origin# 推送本地代码到远程gitpush origin main# 第一次推送建立追踪关系gitpush-uorigin main第四类分支操作并行开发的核心# 查看所有本地分支gitbranch# 查看所有分支含远程gitbranch-a# 创建新分支gitbranch feature/login# 切换到指定分支gitcheckout feature/login# 创建并切换推荐用法gitcheckout-bfeature/login# 新版Git推荐写法gitswitch-cfeature/login# 合并指定分支到当前分支gitmerge feature/login# 删除已合并的分支gitbranch-dfeature/login# 强制删除分支未合并也删gitbranch-Dfeature/login分支命名建议场景命名格式示例新功能开发feature/功能名feature/user-loginBug修复fix/问题描述fix/login-crash紧急热修复hotfix/问题hotfix/payment-error发布版本release/版本号release/v1.2.0第五类版本回退救命命令# 查看提交历史gitloggitlog--oneline# 简洁模式gitlog--oneline--graph# 图形化显示分支# 回退到上一个版本保留工作区改动gitreset--softHEAD~1# 回退到上一个版本清空暂存区保留文件改动gitreset--mixedHEAD~1# 彻底回退工作区也还原慎用gitreset--hardHEAD~1# 回退到指定commitcommit hash从git log里复制gitreset--harda1b2c3d# 撤销某次提交安全方式生成新提交gitrevert a1b2c3dreset vs revert 怎么选本地没push过的提交用reset直接删掉已经push到远程的提交用revert生成反向提交不影响他人第六类暂存工作区临时切任务工作做到一半突然要去改另一个bug用stash临时存档# 暂存当前工作区改动gitstash# 暂存时附上说明gitstash push-m登录功能做到一半# 查看所有暂存记录gitstash list# 恢复最近一次暂存保留stash记录gitstash apply# 恢复并删除stash记录gitstash pop# 恢复指定stashgitstash apply stash{2}# 删除指定stashgitstash drop stash{0}第七类查看差异排查问题必用# 查看工作区与暂存区的差异gitdiff# 查看暂存区与上次提交的差异gitdiff--staged# 比较两个分支的差异gitdiffmain feature/login# 查看某个文件的修改历史gitlog-pfilename.txt# 查看某行代码是谁改的gitblame filename.txt第八类标签管理版本发布# 查看所有标签gittag# 创建轻量标签gittag v1.0.0# 创建附注标签推荐gittag-av1.0.0-m正式发布1.0.0版本# 推送标签到远程gitpush origin v1.0.0# 推送所有标签gitpush origin--tagsmerge 和 rebase 到底用哪个这是新手最容易困惑的问题一句话区分操作效果适用场景git merge保留完整历史生成merge commit主分支合并功能分支git rebase历史线性整洁无额外merge commit个人分支同步主干最新代码# merge在main分支合并feature分支gitcheckout maingitmerge feature/login# rebase在feature分支上把main的最新提交应用过来gitcheckout feature/logingitrebase main团队黄金原则公共分支main/develop用merge个人开发分支同步主干用rebase。遇到代码冲突怎么办冲突是团队协作无法避免的解决流程固定# 1. pull后发现冲突gitpull origin main# 提示CONFLICT (content): Merge conflict in src/App.js# 2. 打开冲突文件找到冲突标记# HEAD# 你的代码# # 别人的代码# origin/main# 3. 手动编辑保留正确内容删除冲突标记# 4. 重新add和commitgitaddsrc/App.jsgitcommit-mresolve: 解决App.js合并冲突最省事的办法用 EasyClaw 辅助 Git 工作流Git命令虽然不多但刚入门时记忆成本还是挺高的——尤其是 rebase、cherry-pick、stash 这些不常用但关键时刻很需要的命令。EasyClaw 的技能商店里有 Git 辅助技能包遇到不会的 Git 操作直接描述问题AI 给出对应命令和解释在Easyclaw告诉他你的需求AI 直接给出git cherry-pick的完整用法不用自己翻文档。立刻免费体验 EasyClaw把 Git 难题丢给 AI专注写代码本身。还会把其他状况都告诉你不用担心出错。Git常用命令速查表场景命令初始化仓库git init克隆仓库git clone url查看状态git status加入暂存区git add .提交git commit -m msg推送git push origin main拉取git pull origin main创建并切换分支git checkout -b branch合并分支git merge branch查看日志git log --oneline版本回退git reset --hard HEAD~1临时存档git stash恢复存档git stash pop查看差异git diff打标签git tag -a v1.0 -m msg避坑清单git reset --hard会丢失未提交的改动执行前先git stash备份永远不要在 main/master 分支上直接开发新功能开新分支commit信息要有意义“fix bug”、修改这类信息等于没写push之前先pull避免推送时出现冲突.gitignore文件在项目初始化时就配置好不要把node_modules、.env等提交上去公共分支不要git push --force会覆盖他人提交总结日常提交三步走git add .→git commit -m →git push origin 分支名分支是Git的灵魂每个功能/修复单独开分支main分支只接收合并回退用reset还是revert本地未push用reset已push用revert冲突不可怕手动编辑冲突标记删掉不要的重新add commit就好命令记不住没关系用 EasyClaw AI技能包描述需求直接给命令比翻文档快10倍