Git 常用命令全总结|从入门到进阶,一篇搞定开发所有场景
作为开发者Git 是日常工作中必不可少的版本控制工具。不管是单人开发还是团队协作熟练掌握 Git 命令都能大幅提升工作效率避免版本冲突、代码丢失等问题。本文将按使用场景分类总结 Git 核心命令、进阶命令及避坑技巧新手可入门老手可速查。一、仓库初始化与远程仓库关联基础入门这部分是 Git 操作的起点主要用于新建仓库、关联远程仓库适用于项目初始化阶段。1. 本地仓库初始化git init在当前目录创建一个新的 Git 仓库生成隐藏的 .git 文件夹包含版本控制所需的所有文件。示例打开项目文件夹执行git init即可将当前目录变为 Git 可管理的仓库。注意一个项目只需要初始化一次重复执行不会覆盖现有仓库只会更新 .git 文件夹。2. 克隆远程仓库git clone 远程仓库URL将远程仓库完整克隆到本地包括所有分支、提交历史和文件。常用示例- 基础克隆git clone https://github.com/username/project.git- 克隆到指定文件夹git clone https://github.com/username/project.git my-project- 克隆指定分支git clone -b dev https://github.com/username/project.git直接克隆 dev 分支避免默认克隆主分支3. 关联远程仓库本地仓库初始化后需关联远程仓库才能实现代码推送和拉取常用命令如下-git remote add 远程仓库别名 远程仓库URL为本地仓库添加远程仓库关联别名通常设为 origin默认。示例git remote add origin https://github.com/username/project.git-git remote -v查看本地已关联的远程仓库信息包括别名和对应的 URL。-git remote rm 远程仓库别名删除指定的远程仓库关联。示例git remote rm origin取消本地与 origin 远程仓库的关联二、日常开发核心命令高频使用这部分命令是日常开发中使用频率最高的涵盖文件状态查看、暂存、提交、拉取、推送等基础操作。1. 查看文件状态git status查看当前工作区、暂存区的文件状态包括已修改、已暂存、未跟踪、已忽略的文件。这是排查问题的第一步每次提交代码前建议先执行该命令确认文件状态无误。执行后会清晰显示哪些文件需要暂存哪些文件有未提交的修改。2. 暂存文件工作区 → 暂存区Git 的版本控制分为工作区、暂存区、版本库三个区域暂存文件是提交前的必要步骤。-git add 文件路径将指定文件从工作区添加到暂存区准备提交。示例git add index.html暂存单个文件、git add src/暂存整个 src 文件夹-git add .将工作区所有已修改、未跟踪的文件除了 .gitignore 忽略的文件全部添加到暂存区适合一次性暂存多个文件。-git add --all与 git add . 功能类似但会包含已删除的文件建议优先使用。3. 提交文件暂存区 → 版本库提交是将暂存区的文件保存到版本库生成新的提交记录每个提交都有唯一的 commit ID用于版本回溯。-git commit -m 提交说明将暂存区的文件提交到版本库-m 后面跟提交说明必须清晰描述本次提交的内容如“修复登录页样式问题”“新增用户列表功能”。示例git commit -m 新增首页轮播图功能-git commit -am 提交说明跳过暂存步骤直接将工作区已跟踪的文件已提交过的文件提交到版本库适合快速提交修改未跟踪的文件无法用该命令提交。示例git commit -am 修改首页标题文案-git commit --amend修改最近一次的提交说明或补充暂存的文件到最近一次提交避免生成多余的提交记录。示例执行git commit --amend -m 修改首页标题文案补充说明即可替换最近一次的提交说明。4. 拉取远程代码远程 → 本地团队协作时需定期拉取远程仓库的最新代码避免与他人代码冲突。-git pull 远程仓库别名 远程分支名从远程仓库拉取指定分支的最新代码并合并到本地当前分支。示例git pull origin main拉取远程 main 分支的最新代码并合并到本地 main 分支-git pull --rebase 远程仓库别名 远程分支名拉取远程代码并以变基的方式合并避免生成多余的合并提交记录让提交历史更整洁。示例git pull --rebase origin dev5. 推送本地代码本地 → 远程本地提交后需将代码推送到远程仓库供团队成员查看和使用。-git push 远程仓库别名 本地分支名将本地指定分支的提交推送到远程仓库对应的分支。示例git push origin main将本地 main 分支的提交推送到远程 main 分支-git push -u 远程仓库别名 本地分支名首次推送时使用-u 表示关联本地分支和远程分支后续推送可直接执行git push无需指定别名和分支。示例git push -u origin dev首次推送 dev 分支关联远程 dev 分支-git push --force强制推送本地代码到远程仓库覆盖远程仓库的提交记录谨慎使用团队协作中容易覆盖他人代码仅在本地修改提交历史后使用。三、分支管理命令团队协作核心分支是 Git 的核心优势之一用于实现并行开发、功能开发、bug 修复等场景避免影响主分支代码。常用分支管理命令如下1. 查看分支-git branch查看本地所有分支当前所在分支前会有 * 标记。-git branch -r查看远程所有分支。-git branch -a查看本地和远程所有分支。-git branch -v查看本地分支的最新提交记录和提交说明。2. 创建分支-git branch 分支名基于当前分支创建一个新的本地分支创建后仍停留在当前分支。示例git branch feature/login基于当前分支创建 feature/login 功能分支-git checkout -b 分支名创建新分支并立即切换到该分支是日常开发中最常用的创建分支方式。示例git checkout -b bugfix/order创建 bugfix/order 修复分支并切换到该分支-git checkout -b 本地分支名 远程仓库别名/远程分支名基于远程分支创建本地分支并关联远程分支。示例git checkout -b dev origin/dev基于远程 dev 分支创建本地 dev 分支并关联3. 切换分支-git checkout 分支名切换到指定本地分支。示例git checkout main切换到 main 分支-git switch 分支名Git 2.23 版本新增命令功能与 git checkout 一致更直观用于切换分支。示例git switch dev切换到 dev 分支4. 合并分支将一个分支的代码合并到当前分支常用于功能开发完成后合并到主分支或 bug 修复完成后合并到开发分支。-git merge 分支名将指定分支的代码合并到当前分支默认生成合并提交记录。示例切换到 main 分支后执行git merge feature/login将 feature/login 分支的代码合并到 main 分支注意合并前需确保当前分支和待合并分支都已拉取最新代码避免冲突。若出现冲突需先解决冲突再提交合并。-git rebase 分支名以变基的方式合并指定分支的代码到当前分支与 merge 不同rebase 会将当前分支的提交记录“移到”待合并分支的最新提交之后让提交历史更线性、整洁。示例切换到 feature/login 分支后执行git rebase main将 main 分支的最新代码合并到 feature/login 分支以变基方式5. 删除分支分支开发完成、合并后可删除多余分支保持仓库整洁。-git branch -d 分支名删除指定本地分支前提是该分支的代码已合并到其他分支未合并则无法删除。示例git branch -d feature/login删除 feature/login 本地分支-git branch -D 分支名强制删除指定本地分支即使该分支代码未合并谨慎使用避免代码丢失。-git push 远程仓库别名 --delete 远程分支名删除远程仓库的指定分支。示例git push origin --delete feature/login删除远程 origin 仓库的 feature/login 分支四、撤销与回退命令避坑必备开发中难免会出现错误提交、误修改文件等情况掌握撤销与回退命令可快速恢复代码减少损失。1. 撤销工作区修改git restore 文件路径撤销工作区指定文件的修改恢复到最近一次提交或暂存的状态Git 2.23 版本新增替代旧命令 git checkout -- 文件路径。示例git restore index.html撤销 index.html 文件的工作区修改旧命令git checkout -- index.html功能一致建议使用新命令2. 撤销暂存区修改暂存区 → 工作区git restore --staged 文件路径将指定文件从暂存区撤销到工作区保留工作区的修改Git 2.23 版本新增替代旧命令 git reset HEAD 文件路径。示例git restore --staged index.html将 index.html 从暂存区撤销到工作区旧命令git reset HEAD index.html功能一致建议使用新命令3. 版本回退回退到指定的提交版本适用于错误提交后恢复代码常用三种参数--soft、--mixed、--hard。-git reset --soft commit ID回退到指定提交版本保留工作区和暂存区的修改仅撤销提交记录适合重新提交。示例git reset --soft 1a2b3c4回退到 commit ID 为 1a2b3c4 的版本保留修改-git reset --mixed commit ID默认参数回退到指定提交版本保留工作区修改撤销暂存区和提交记录适合重新暂存、提交。示例git reset --mixed 1a2b3c4可简写为 git reset 1a2b3c4-git reset --hard commit ID强制回退到指定提交版本撤销工作区、暂存区和提交记录的所有修改恢复到指定版本的状态谨慎使用会丢失未提交的修改无法恢复。示例git reset --hard 1a2b3c4注意回退远程分支的提交记录需配合git push --force强制推送但团队协作中需提前告知成员避免覆盖他人代码。4. 撤销已推送的提交若已将错误提交推送到远程仓库可使用git revert commit ID撤销指定提交该命令会生成一个新的提交记录保留原提交历史比 reset 更安全适合团队协作场景。示例git revert 1a2b3c4撤销 commit ID 为 1a2b3c4 的提交生成新的提交记录五、进阶命令提升效率这部分命令不常用但在特定场景下能大幅提升效率适合有一定基础的开发者掌握。1. 暂存工作进度git stash适用于当前分支工作未完成需要切换到其他分支处理紧急任务的场景可暂存当前工作区的修改切换分支后再恢复。-git stash暂存当前工作区的所有修改保存为一个临时记录。-git stash save 暂存说明暂存时添加说明方便后续识别。示例git stash save 未完成的首页轮播图修改-git stash list查看所有暂存的记录。-git stash pop恢复最近一次的暂存记录并删除该暂存记录。-git stash apply 暂存记录编号恢复指定的暂存记录不删除暂存记录编号可通过 git stash list 查看。示例git stash apply stash{0}恢复第一条暂存记录-git stash drop 暂存记录编号删除指定的暂存记录。-git stash clear删除所有暂存记录。2. 查看提交历史-git log查看本地分支的提交历史按时间倒序排列显示 commit ID、提交人、提交时间、提交说明。-git log --oneline简洁显示提交历史一行一个提交只显示 commit ID前7位和提交说明便于快速查看。-git log --graph以图形化方式显示提交历史清晰展示分支合并、变基的过程。-git log --author用户名查看指定用户的提交历史。示例git log --authorzhangsan查看张三的所有提交-git log --since2026-01-01查看指定日期之后的提交历史。3. 拣选提交git cherry-pick将其他分支的指定提交记录复制到当前分支适用于将 bug 修复提交复制到多个分支避免重复开发。示例git cherry-pick 1a2b3c4将 commit ID 为 1a2b3c4 的提交复制到当前分支4. 子模块管理git submodule适用于项目中引用其他 Git 仓库如公共组件库的场景可将其他仓库作为子模块嵌入当前项目。-git submodule add 远程仓库URL 本地路径添加子模块。示例git submodule add https://github.com/username/common-components.git src/components/common-git submodule init初始化子模块克隆项目后首次使用子模块时执行。-git submodule update拉取子模块的最新代码。-git clone --recurse-submodules 远程仓库URL克隆包含子模块的项目时同时拉取子模块的代码。六、常用配置与避坑技巧1. 基础配置首次使用 Git 时需配置用户名和邮箱用于标识提交人信息。- 全局配置所有项目生效git config --global user.name 你的用户名git config --global user.email 你的邮箱- 局部配置仅当前项目生效进入项目目录后执行上述命令去掉 --global 参数即可。- 查看配置git config --list查看所有 Git 配置2. 避坑技巧1. 提交说明要清晰避免使用“修复bug”“修改代码”等模糊描述应明确说明修改内容和原因便于后续追溯。2. 避免强制推送团队协作中非必要不使用git push --force若必须使用需提前告知团队成员避免覆盖他人代码。3. 处理冲突要谨慎合并分支或拉取代码时出现冲突需仔细对比冲突代码保留正确内容删除冲突标记、、再提交合并。4. 定期拉取远程代码团队协作中每天开发前先执行git pull拉取远程最新代码减少冲突概率。5. 分支命名规范建议采用“功能类型/功能名称”的命名方式如 feature/login功能分支、bugfix/orderbug修复分支、release/v1.0发布分支便于团队识别分支用途。七、总结本文总结了 Git 从入门到进阶的常用命令按使用场景分类结合示例和注意事项覆盖了仓库初始化、日常开发、分支管理、撤销回退、进阶操作等所有核心场景。对于新手来说建议先掌握日常开发核心命令和基础分支管理命令再逐步学习进阶命令对于老手来说可将本文作为速查手册遇到问题快速查阅。Git 的核心是版本控制熟练掌握命令的同时更要理解其工作原理工作区、暂存区、版本库的关系才能灵活应对各种开发场景避免不必要的错误。希望本文能帮助大家提升 Git 使用效率让版本控制成为开发的助力而非负担。最后建议大家在实际开发中多实践遇到问题多查阅官方文档或本文逐步形成自己的 Git 使用习惯。如果有遗漏的常用命令欢迎在评论区补充交流~

相关新闻

synchronize

synchronize

synchronize 模块是 Ansible 中对 rsync 工具的一个封装。它主要用于在控制节点和远程主机之间高效地同步文件和目录。 它利用 rsync 的增量传输算法,同步时只传输发生变化的部分,因此在处理大量文件或大文件时,效率远超 copy 等模块 参数&am…

2026/7/19 22:40:52阅读更多 →
毕业后的日子里,请大步向前!

毕业后的日子里,请大步向前!

先简单介绍我自己,本人是一个人文社科类的二本山东毕业生,因为不好找工作,但也不愿在社会中被环境磨平棱角,其实都怪自己醒的太晚,记得上大学那会,对计算机一窍不通,当真正面临就业时候才发现&a…

2026/7/19 22:40:52阅读更多 →
如何在Windows上运行安卓应用?APK安装器5分钟快速上手指南

如何在Windows上运行安卓应用?APK安装器5分钟快速上手指南

如何在Windows上运行安卓应用?APK安装器5分钟快速上手指南 【免费下载链接】APK-Installer An Android Application Installer for Windows 项目地址: https://gitcode.com/GitHub_Trending/ap/APK-Installer 你是否曾经想在Windows电脑上运行安卓应用&#…

2026/7/19 22:40:52阅读更多 →
解决Hypack启动报错:VC++运行库依赖原理与安装修复全指南

解决Hypack启动报错:VC++运行库依赖原理与安装修复全指南

1. 项目概述:当专业软件遇上“拦路虎”搞测绘、做水文的朋友,对Hypack这个软件肯定不陌生。它几乎是内业数据处理和外业导航测量的行业标准工具之一。但很多同行,尤其是刚接触这个软件的新手,在安装Hypack时,十有八九会…

2026/7/20 13:42:45阅读更多 →
Spring循环依赖:为什么原型Bean和构造器依赖无解?三级缓存又为何而生?

Spring循环依赖:为什么原型Bean和构造器依赖无解?三级缓存又为何而生?

一、什么是循环依赖一个“先有鸡还是先有蛋”的编程难题想象一下这个场景:小明说:“我的工作依赖小红完成的数据。”小红说:“不行,我得等小明先把框架搭好,我才能开始处理数据。”两人互相等待,工作永远无…

2026/7/20 13:42:45阅读更多 →
Go语言字符串底层原理与高效处理实践

Go语言字符串底层原理与高效处理实践

1. Go语言字符串基础解析Go语言中的字符串(string)是一种不可变的字节序列,底层实现是一个指向字节数组的指针和长度信息的结构体。从语法层面看,字符串可以包含任意字节,但按照惯例通常存储UTF-8编码的Unicode文本。字符串的零值是空字符串&…

2026/7/20 13:42:45阅读更多 →
AI编程工具协同:Claude Code与Codex插件集成实战指南

AI编程工具协同:Claude Code与Codex插件集成实战指南

如果你正在使用 Claude Code 进行日常开发,最近一定被一个选择困扰:当需要更深入的代码审查、更复杂的调试任务,或者想把一个棘手的 bug 直接“甩”给 AI 时,是该切换到另一个独立的 Codex 应用,还是继续在 Claude Cod…

2026/7/20 13:42:45阅读更多 →
5分钟掌握国家中小学智慧教育平台电子课本下载:智能工具助您轻松获取PDF教材

5分钟掌握国家中小学智慧教育平台电子课本下载:智能工具助您轻松获取PDF教材

5分钟掌握国家中小学智慧教育平台电子课本下载:智能工具助您轻松获取PDF教材 【免费下载链接】tchMaterial-parser 国家中小学智慧教育平台 电子课本下载工具,帮助您从智慧教育平台中获取电子课本的 PDF 文件网址并进行下载,让您更方便地获取…

2026/7/20 13:42:45阅读更多 →
终极指南:如何轻松解锁《鸣潮》游戏模组,打造个性化游戏体验

终极指南:如何轻松解锁《鸣潮》游戏模组,打造个性化游戏体验

终极指南:如何轻松解锁《鸣潮》游戏模组,打造个性化游戏体验 【免费下载链接】wuwa-mod Wuthering Waves pak mods 项目地址: https://gitcode.com/GitHub_Trending/wu/wuwa-mod 还在为《鸣潮》游戏中的挑战而烦恼吗?想要更流畅的战斗…

2026/7/20 13:40:44阅读更多 →
Go语言静态资源打包方案对比与实践指南

Go语言静态资源打包方案对比与实践指南

1. 项目背景与核心需求在Go语言开发中,我们经常需要处理静态资源文件的打包问题。无论是Web应用的模板文件、前端资源,还是配置文件、证书等,都需要随程序一起分发。传统做法是将这些文件与编译后的二进制文件放在同一目录下,但这…

2026/7/20 0:50:54阅读更多 →
Go语言实现高性能LDAP认证服务的架构与实践

Go语言实现高性能LDAP认证服务的架构与实践

1. 项目背景与核心价值LDAP(轻量级目录访问协议)作为企业级身份认证的黄金标准,已经服务了超过80%的财富500强公司。我在金融科技领域实施统一认证体系时,发现传统Java方案存在启动慢、内存占用高等痛点。而Go语言凭借其协程并发模…

2026/7/20 0:50:54阅读更多 →
【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

更多请点击: https://intelliparadigm.com 第一章:AI面试官实战指南的核心价值与适用场景 AI面试官并非替代人类HR的“黑箱工具”,而是以可解释、可审计、可迭代的方式,赋能招聘全链路的关键基础设施。其核心价值在于将主观经验沉…

2026/7/20 0:50:54阅读更多 →
2026 WAIC:努比亚二代“豆包手机”NaviX Ultra亮相,智能体验全面升级!

2026 WAIC:努比亚二代“豆包手机”NaviX Ultra亮相,智能体验全面升级!

7月18日智东西消息,在2026 WAIC期间,努比亚联合字节豆包打造的二代“豆包手机”努比亚NaviX Ultra首次亮相,相比一代有诸多升级。智能体手机理念中兴通讯终端事业部总裁、努比亚总裁倪飞表示,智能体手机要从人操作手机变为手机帮人…

2026/7/20 0:01:04阅读更多 →
努比亚NaviX Ultra亮相WAIC,智能体手机能否让用户生活更简单?

努比亚NaviX Ultra亮相WAIC,智能体手机能否让用户生活更简单?

努比亚NaviX Ultra:外观与功能双升级在2026 WAIC期间,首次亮相的努比亚NaviX Ultra吸引了众多目光。它是努比亚联合字节豆包打造的二代“豆包手机”,与一代努比亚M153相比,外观设计变化较大。其机身背部搭载横向排布的大尺寸影像模…

2026/7/20 0:01:04阅读更多 →
C# 将逗号分割的字符串转换为long,并添加到List<long>

C# 将逗号分割的字符串转换为long,并添加到List<long>

目录 方法1:使用Split和Convert.ToInt64 方法2:使用LINQ的Select和ToList 方法3:使用TryParse进行异常安全转换(推荐) 如果您喜欢此文章,请收藏、点赞、评论,谢谢,祝您快乐每一天…

2026/7/20 0:01:04阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/19 22:50:49阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/19 14:50:26阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/19 18:50:36阅读更多 →