Git 常用操作命令目录配置与初始化基本操作分支管理远程仓库撤销与回退查看与对比暂存与储藏标签管理合并与变基配置与初始化配置用户信息# 设置全局用户名gitconfig--globaluser.nameYour Name# 设置全局邮箱gitconfig--globaluser.emailyour.emailexample.com# 查看所有配置gitconfig--list# 查看指定配置gitconfig user.name初始化仓库# 在当前目录初始化新仓库gitinit# 克隆远程仓库gitclonerepository-url# 克隆指定分支gitclone-bbranch-namerepository-url基本操作文件状态操作# 查看文件状态gitstatus# 查看精简状态gitstatus-s# 添加文件到暂存区gitaddfile-namegitadd.# 添加所有文件gitadd*.js# 添加指定类型文件# 从暂存区移除文件gitrm--cachedfile-name# 重命名文件gitmvold-namenew-name提交操作# 提交暂存区内容gitcommit-mcommit message# 提交所有已跟踪文件的修改跳过 addgitcommit-a-mcommit message# 修改上一次提交gitcommit--amend-mnew message分支管理分支基本操作# 查看所有分支gitbranch# 本地分支gitbranch-r# 远程分支gitbranch-a# 所有分支# 创建分支gitbranchbranch-name# 切换分支gitcheckoutbranch-namegitswitchbranch-name# Git 2.23 推荐# 创建并切换分支gitcheckout-bbranch-namegitswitch-cbranch-name# 删除分支gitbranch-dbranch-name# 已合并的分支gitbranch-Dbranch-name# 强制删除# 重命名分支gitbranch-mold-namenew-name分支合并# 合并指定分支到当前分支gitmergebranch-name# 合并时禁用快进gitmerge --no-ffbranch-name# 取消合并冲突时gitmerge--abort远程仓库远程仓库管理# 查看远程仓库gitremote-v# 添加远程仓库gitremoteaddnameurl# 删除远程仓库gitremote removename# 重命名远程仓库gitremoterenameold-namenew-name推送与拉取# 推送到远程仓库gitpushremotebranchgitpush origin main# 推送并设置上游分支gitpush-uoriginbranch# 强制推送谨慎使用gitpush--force# 拉取远程更新gitpullremotebranchgitpull origin main# 仅拉取不合并gitfetchremotegitfetch--all撤销与回退撤销工作区修改# 丢弃工作区修改gitcheckout --file-namegitrestorefile-name# Git 2.23 推荐# 丢弃所有工作区修改gitcheckout.gitrestore.撤销暂存区# 从暂存区移除gitreset HEADfile-namegitrestore--stagedfile-name版本回退# 回退到指定版本保留工作区修改gitreset--softcommit-id# 回退到指定版本保留工作区清空暂存区gitreset--mixedcommit-id# 回退到指定版本丢弃所有修改gitreset--hardcommit-id# 查看操作历史gitreflog撤销提交# 创建新的提交来撤销指定提交gitrevertcommit-id# 撤销多个提交gitrevertcommit-id1..commit-id2查看与对比查看历史# 查看提交历史gitlog# 简洁显示gitlog--oneline# 图形化显示分支gitlog--graph--oneline--all# 查看指定文件历史gitlog-pfile-name# 查看某人的提交gitlog--authorname对比差异# 查看工作区修改gitdiff# 查看暂存区修改gitdiff--stagedgitdiff--cached# 查看两个分支差异gitdiffbranch1branch2# 查看两个提交差异gitdiffcommit1commit2暂存与储藏储藏操作# 储藏当前修改gitstash# 储藏并添加说明gitstash savemessage# 查看储藏列表gitstash list# 应用最近的储藏gitstash apply# 应用指定储藏gitstash apply stash{n}# 应用并删除储藏gitstash pop# 删除指定储藏gitstash drop stash{n}# 清空所有储藏gitstashclear标签管理标签操作# 查看所有标签gittag# 创建轻量标签gittagtag-name# 创建附注标签gittag-atag-name-mmessage# 为历史提交创建标签gittag-atag-namecommit-id# 推送标签到远程gitpush origintag-namegitpush--tags# 推送所有标签# 删除本地标签gittag-dtag-name# 删除远程标签gitpush origin--deletetag-name合并与变基变基操作# 将当前分支变基到目标分支gitrebasebranch-name# 交互式变基gitrebase-icommit-idgitrebase-iHEAD~3# 最近3次提交# 继续变基gitrebase--continue# 跳过当前提交gitrebase--skip# 取消变基gitrebase--abort冲突解决# 查看冲突文件gitstatus# 解决冲突后标记为已解决gitaddresolved-file# 继续合并/变基gitmerge--continuegitrebase--continue拣选提交# 将指定提交应用到当前分支gitcherry-pickcommit-id# 拣选多个提交gitcherry-pickcommit-id1commit-id2# 拣选提交范围gitcherry-pickcommit-id1..commit-id2实用技巧别名设置# 设置命令别名gitconfig--globalalias.st statusgitconfig--globalalias.co checkoutgitconfig--globalalias.br branchgitconfig--globalalias.ci commitgitconfig--globalalias.lglog --oneline --graph --all忽略文件创建.gitignore文件# 忽略 node_modules node_modules/ # 忽略编译文件 *.class *.exe *.o # 忽略系统文件 .DS_Store Thumbs.db # 忽略配置文件 .env config.local.json清理工作区# 查看未跟踪文件gitclean-n# 删除未跟踪文件gitclean-f# 删除未跟踪文件和目录gitclean-fd常见问题处理1. 如何修改已推送的提交信息gitcommit--amend-mnew messagegitpush --force-with-lease2. 如何合并多个提交gitrebase-iHEAD~n# 将除第一个外的 pick 改为 squash3. 如何撤销 git addgitreset HEADfile-name4. 如何查看某个提交的内容gitshowcommit-id最后更新2026年4月