Git指令大全(常见版)

按Git核心使用场景分类整理常用命令,涵盖基础配置、仓库操作、分支管理、远程协作、撤销回退等场景,附带命令作用及实用说明,适用于日常开发查阅与新手入门。

一、基础配置命令

二、仓库基础操作命令

三、分支管理命令

四、远程仓库协作命令

五、撤销与回退命令

六、临时保存(Stash)命令

七、标签管理命令

八、其他实用命令

九、常用技巧与注意事项

一、基础配置命令

首次使用Git需配置用户信息,用于提交记录标识,支持全局配置与局部配置(仅当前仓库生效)。

命令 作用说明
git config --global user.name "Your Name" 全局配置用户名,替换"Your Name"为实际名称
git config --global user.email "your.email@example.com" 全局配置用户邮箱,替换为实际邮箱
git config user.name "Your Name" 局部配置(当前仓库)用户名,需在仓库目录执行
git config --list 查看所有Git配置信息,包含全局与局部配置
git config user.name 查看当前生效的用户名配置
git config --global pull.rebase true 全局设置git pull默认使用rebase模式,保持提交历史线性

二、仓库基础操作命令

涵盖仓库初始化、文件状态查看、暂存区操作、提交记录查看等核心基础功能。

命令 作用说明
git init 在当前目录初始化Git仓库,生成隐藏的.git文件夹
git clone <repository-url> 克隆远程仓库到本地,<repository-url>为远程仓库地址(HTTPS/SSH)
git clone <repository-url> <directory-name> 克隆远程仓库并指定本地目录名,<directory-name>为自定义目录
git status 查看当前工作区与暂存区状态,显示修改、新增、删除的文件
git status -s 简洁模式显示状态,仅用符号标识文件状态(如M表示修改)
git add <file-name> 将指定文件添加到暂存区,<file-name>为文件名(含路径)
git add . 添加当前目录所有变更文件到暂存区,不含.gitignore忽略的文件
git add -A 添加所有变更文件到暂存区,包含删除的文件和未跟踪文件
git add -u 仅添加已跟踪文件的修改和删除到暂存区,不含新创建的未跟踪文件
git commit -m "commit-message" 将暂存区文件提交到本地仓库,"commit-message"为提交说明(需清晰描述变更)
git commit -am "commit-message" 自动添加已跟踪文件到暂存区并提交,不含新创建的未跟踪文件
git commit --amend 修改最后一次提交记录,可修改提交说明或补充未提交的暂存文件
git log 查看本地仓库提交历史,按时间倒序显示(最新提交在前)
git log --oneline 简洁模式显示提交历史,每条记录仅占一行(含提交ID前7位和说明)
git log --graph 图形化显示提交历史,清晰展示分支合并关系
git log --author="name" 按作者筛选提交历史,替换"name"为目标作者名称

三、分支管理命令

分支是Git核心功能,支持并行开发、功能隔离与版本控制,以下为常用分支操作命令。

命令 作用说明
git branch 查看本地分支列表,当前所在分支前标注"*"
git branch -a 查看所有分支(本地+远程),远程分支以"remotes/origin/"前缀显示
git branch <branch-name> 创建新分支,<branch-name>为分支名称,不切换到新分支
git checkout <branch-name> 切换到指定本地分支,<branch-name>为分支名称
git checkout -b <branch-name> 创建并切换到新分支,等价于git branch + git checkout
git switch <branch-name> Git 2.23+版本推荐使用,语义化切换分支,替代git checkout
git switch -c <branch-name> 创建并切换到新分支,替代git checkout -b(新语法)
git merge <branch-name> 将指定分支合并到当前所在分支,<branch-name>为待合并分支
git branch -d <branch-name> 删除指定本地分支,仅能删除已合并到当前分支的分支
git branch -D <branch-name> 强制删除指定本地分支,无论分支是否合并(谨慎使用)
git branch -m <old-name> <new-name> 重命名本地分支,<old-name>为旧分支名,<new-name>为新名称
git push origin --delete <branch-name> 删除远程仓库指定分支,需具备对应权限
git rebase <target-branch> 将当前分支变基到目标分支,使提交历史更线性(替代merge)
git rebase --continue 解决变基冲突后,继续执行变基操作
git rebase --abort 放弃变基操作,恢复到变基前的状态
git rebase -i HEAD~n 交互式变基,整理最近n次提交(如n=3即整理最近3次),可合并、修改提交说明

四、远程仓库协作命令

用于与远程仓库(如GitHub、GitLab)同步数据,涵盖远程连接管理、推送、拉取等操作。

命令 作用说明
git remote -v 查看本地仓库关联的远程仓库地址,显示fetch(拉取)和push(推送)地址
git remote add <remote-name> <remote-url> 添加远程仓库关联,<remote-name>通常为"origin"(默认名),<remote-url>为远程地址
git remote remove <remote-name> 删除与指定远程仓库的关联
git fetch <remote-name> 从远程仓库获取最新数据(不自动合并到本地分支),存储在本地远程跟踪分支
git pull 等价于git fetch + git merge,从远程仓库拉取数据并自动合并到当前分支
git pull --rebase 拉取远程数据并以rebase模式合并,避免产生合并提交记录
git push <remote-name> <branch-name> 将本地分支推送到远程仓库,如git push origin main(推送到origin的main分支)
git push -u <remote-name> <branch-name> 首次推送分支并设置上游跟踪关系,后续可直接使用git push/pull,无需指定分支
git push --force-with-lease 安全强制推送(推荐),仅在远程分支与本地跟踪分支一致时推送,避免覆盖他人提交
git cherry-pick <commit-id> 将指定提交(<commit-id>为提交ID)复制到当前分支,适用于跨分支复用提交

五、撤销与回退命令

用于撤销工作区修改、暂存区操作及版本回退,区分reset(修改历史)与revert(新增反向提交)两种方式。

命令 作用说明
git checkout -- <file-name> 撤销工作区对指定文件的修改,恢复到最近一次提交或暂存区状态(未暂存的修改会丢失)
git restore <file-name> Git 2.23+版本新增,替代git checkout -- <file>,撤销工作区文件修改
git reset HEAD <file-name> 将指定文件从暂存区移回工作区,撤销git add操作
git reset --soft <commit-id> 回退到指定提交,保留工作区和暂存区所有改动,仅移动HEAD指针
git reset --mixed <commit-id> 默认模式,回退到指定提交,重置暂存区(与目标提交一致),保留工作区改动
git reset --hard <commit-id> 强制回退到指定提交,重置暂存区和工作区(与目标提交一致),未提交的改动全部丢失(谨慎使用)
git revert <commit-id> 生成一个新提交,反向抵消指定提交的内容,不修改历史提交记录(适合公共分支)
git revert <commit1-id>..<commit2-id> 批量撤销多个提交(范围:commit1到commit2,含两端),逐一生成反向提交

六、临时保存(Stash)命令

用于临时保存未提交的修改(工作区+暂存区),清理工作区以切换分支、拉取代码等,后续可恢复修改。

命令 作用说明
git stash 临时保存当前修改,恢复工作区到最近一次提交状态
git stash save "备注信息" 保存修改并添加备注,方便后续识别(如git stash save "开发中用户登录模块")
git stash -u 保存修改时包含未跟踪文件(新创建未git add的文件)
git stash list 查看所有临时保存的记录,按栈结构排列(stash@{0}为最近一次)
git stash apply 恢复最近一次stash的修改,保留stash记录
git stash apply stash@{n} 恢复指定序号的stash修改,n为stash列表中的序号(如stash@{1})
git stash pop 恢复最近一次stash的修改,并删除该stash记录(推荐使用,避免堆积)
git stash drop stash@{n} 删除指定序号的stash记录,不恢复修改
git stash clear 清空所有stash记录,谨慎使用
git stash branch <branch-name> 从stash创建新分支,自动应用该stash修改并删除记录

七、标签管理命令

用于给重要提交打标签(如版本发布节点),方便快速定位和切换到指定版本。

命令 作用说明
git tag 查看本地所有标签,按字母顺序排列
git tag <tag-name> 给当前最新提交打轻量标签,<tag-name>为标签名称(如v1.0.0)
git tag -a <tag-name> -m "标签说明" 创建带注释的标签,-m后为标签说明(推荐使用,包含更多信息)
git tag -d <tag-name> 删除本地指定标签
git push <remote-name> <tag-name> 将本地指定标签推送到远程仓库
git push <remote-name> --tags 将本地所有标签推送到远程仓库
git push <remote-name> :refs/tags/<tag-name> 删除远程仓库指定标签
git checkout <tag-name> 切换到指定标签对应的版本(处于游离HEAD状态,需创建分支避免修改丢失)

八、其他实用命令

涵盖代码对比、文件清理、信息查看等辅助功能,提升开发效率。

命令 作用说明
git diff 查看工作区与暂存区文件的差异(未暂存的修改)
git diff --staged 查看暂存区与最近一次提交的文件差异(已暂存未提交的修改)
git diff <commit1-id> <commit2-id> 查看两次提交之间的文件差异
git blame <file-name> 查看文件每行代码的提交记录(包含作者、提交时间、提交ID),定位代码修改人
git rm <file-name> 从工作区和暂存区删除指定文件,同时删除本地文件
git rm --cached <file-name> 仅从暂存区删除指定文件,保留本地文件(适用于误添加.gitignore文件)
git clean -f 删除本地未跟踪的文件(谨慎使用,无法恢复)
git clean -fd 删除本地未跟踪的文件和目录(谨慎使用)
git show <commit-id> 查看某次提交的详细信息(包含提交说明、文件修改内容)

九、常用技巧与注意事项

相关推荐
QUST-Learn3D1 天前
geometry4Sharp Ray-Mesh求交 判断点是否在几何体内部
服务器·前端·数据库
持续升级打怪中1 天前
ES6 Promise 完全指南:从入门到精通
前端·javascript·es6
AC赳赳老秦1 天前
前端可视化组件开发:DeepSeek辅助Vue/React图表组件编写实战
前端·vue.js·人工智能·react.js·信息可视化·数据分析·deepseek
小白冲鸭1 天前
苍穹外卖-前端环境搭建-nginx双击后网页打不开
运维·前端·nginx
wulijuan8886661 天前
Web Worker
前端·javascript
深念Y1 天前
仿B站项目 前端 3 首页 整体结构
前端·ai·vue·agent·bilibili·首页
IT_陈寒1 天前
React 18实战:这5个新特性让我的开发效率提升了40%
前端·人工智能·后端
深念Y1 天前
仿B站项目 前端 5 首页 标签栏
前端·vue·ai编程·bilibili·标签栏·trae·滚动栏
克里斯蒂亚诺更新1 天前
vue3使用pinia替代vuex举例
前端·javascript·vue.js