Git常用操作指令

最近给公司小伙伴安排了一下git培训,写了个常用指令,记录一下

一、配置与初始化(首次使用/新建仓库)

|-------------------------------------------|-----------------------------|
| 指令 | 功能说明 |
| git config --global user.name "你的姓名" | 配置全局用户名(会显示在提交记录中) |
| git config --global user.email "你的公司邮箱" | 配置全局用户邮箱 |
| `git config --list | 查看配置 |
| mkdir git-demo | 创建项目文件夹(系统命令,Git初始化前准备) |
| cd git-demo | 进入项目文件夹(系统命令) |
| git init | 初始化本地Git仓库(生成隐藏的.git 文件夹) |

二、本地核心操作(文件修改/提交/历史查看)

|----------------------------------|---------------------------------------------|
| 指令 | 功能说明 |
| touch README.md | 创建文件(系统命令,用于测试Git操作) |
| echo "# Git Demo" >> README.md | 编辑文件内容(系统命令) |
| git status | 查看文件状态(红色=未暂存,绿色=已暂存) |
| git add <文件名> | 将指定文件从工作区添加到暂存区(例:git add README.md ) |
| git commit -m "提交信息" | 将暂存区文件提交到本地仓库(提交信息需规范,例:feat: 初始化README ) |
| git log | 查看详细提交历史(按q 退出) |
| git log --oneline | 查看简洁提交历史(推荐日常使用) |
| git checkout <文件名> | 恢复未提交的误删文件(从本地库恢复) |
| git commit --amend | 修改最后一次提交的信息(提交信息写错时使用) |

三、版本回滚

|--------------------------|--------------------------------------------------|
| 指令 | 功能说明 |
| git reset --hard HEAD^ | 强制回滚到上一个版本(HEAD^ 表示上一版) |
| git reset --hard <版本号> | 强制回滚到指定版本(版本号从git log /git log --oneline 获取) |
| 注意 | 强制回滚会丢弃当前未提交的修改,务必谨慎使用! |

四、分支操作(团队协作核心)

|-------------------------|-----------------------------------------------------------------------------------|
| 指令 | 功能说明 |
| git branch | 查看本地所有分支 |
| git checkout -b <分支名> | 创建并切换到新分支(例:git checkout -b feature/login ) |
| git checkout <分支名> | 切换到已有分支(例:git checkout main ) |
| git merge <分支名> | 合并指定分支到当前分支(例:git merge feature/login ) |
| git branch -d <分支名> | 合并后删除分支(例:git branch -d feature/login ) |
| 分支命名规范 | 功能开发:feature/功能名 (例:feature/payment );Bug修复:fix/bug描述 (例:fix/button-fix ) |

五、远程同步(与团队共享代码)

|-----------------------------------|---------------------------------------------|
| 指令 | 功能说明 |
| git remote add origin <远程仓库URL> | 关联本地仓库与远程仓库(例:Gitee/GitHub仓库URL) |
| git clone <远程仓库URL> | 克隆远程仓库到本地(首次获取远程代码时使用) |
| git pull | 拉取远程仓库最新代码(避免冲突,修改前优先执行) |
| git push -u origin <分支名> | 推送本地分支代码到远程仓库(例:git push -u origin main ) |
| 协作黄金口诀 | 先pull再修改,修改先add,提交写备注,分支分清楚 |

六、冲突处理(代码"撞车"时)

|--------------------------------------|-----------------------------------------------------------|
| 指令 | 功能说明 |
| 步骤1 | 手动编辑冲突文件:保留需要的逻辑,删除冲突标记(<<<<<<<=======>>>>>>> ) |
| git add <冲突文件名> | 标记冲突已解决,将文件加入暂存区 |
| git commit -m "fix: 解决合并冲突,保留核心逻辑" | 提交解决冲突后的代码 |
| git push | 推送解决冲突后的代码到远程仓库 |

六、补充模块:暂存未提交修改(git stash 系列指令)

|-----------------------------|--------------------------------------------------------------------------------|
| 指令 | 功能说明 |
| git stash | 暂存当前工作区和暂存区中未提交的修改(不包含未跟踪文件),使工作区恢复干净状态,方便切换分支或处理其他任务 |
| git stash save "备注信息" | 暂存时添加备注(推荐),便于后续区分不同暂存内容(例:git stash save "未完成的支付功能开发" ) |
| git stash list | 查看所有暂存记录(格式:stash@{n}: On 分支名: 备注信息 ,n为暂存序号,从0开始) |
| git stash apply stash@{n} | 恢复指定序号的暂存修改(n可省略,默认恢复最新的stash@{0} ),暂存记录不会删除(例:git stash apply stash@{1} ) |
| git stash pop stash@{n} | 恢复指定序号的暂存修改,同时删除该暂存记录(常用,恢复后清理无用暂存) |
| git stash drop stash@{n} | 仅删除指定序号的暂存记录(无需恢复时清理) |
| git stash clear | 清空所有暂存记录(谨慎使用,不可恢复) |
| git stash show stash@{n} | 查看指定暂存记录的修改差异(显示文件变更摘要) |

核心使用场景:
  1. 开发中需要临时切换分支(如修复紧急Bug),但当前修改未完成不想提交,用git stash暂存后切换,返回后用pop恢复继续开发;
  2. 拉取远程代码(git pull)前,本地有未提交修改可能冲突,暂存后拉取,再恢复修改合并。

提交信息规范(辅助指令使用,提升协作效率)

  • feat: 新增功能特性(例:feat: 新增登录功能
  • fix: 修复代码缺陷或Bug(例:fix: 修复按钮点击无响应
  • docs: 仅修改文档说明(例:docs: 更新API文档
  • style: 仅修改格式(不影响逻辑)(例:style: 调整代码缩进

七、IDEA操作GIT(不同版本的IDEA界面可能稍有不同)

  1. 克隆项目
  1. 拉取项目最新代码、 提交代码、推送代码

3、新建分支 切换分支

4、合并分支

相关推荐
qq_426003968 小时前
git切换当前分支到远程分支
git
ON10N12 小时前
100% 纯 Vibe Coding,我是怎么用 AI 撸出一个 VS Code 插件的
git·ai编程·visual studio code
Lunar*19 小时前
告别臃肿!使用 git-filter-repo 优雅清理 Git 历史记录
git
tq108620 小时前
agent 记忆 = markdown + json + git
人工智能·git
何以不说话21 小时前
DevOps、Git 和 GitLab
git·gitlab·devops
最最菜的菜鸟1 天前
本地环境通过 SSH 协议访问 GitHub 上的仓库时,SSH 公钥认证失败,配置 Git SSH 密钥
git·ssh·github
无限进步_2 天前
21. 合并两个有序链表 - 题解与详细分析
c语言·开发语言·数据结构·git·链表·github·visual studio
宁静致远20212 天前
STM32CubeMX、MDK(Keil MDK)、git、vscode等工具中统一编码设置(UTF-8),确保中文支持,避免乱码问题
git·vscode·stm32
love530love2 天前
Windows 多 Git 环境冲突:一个环境变量优先级引发的血案
人工智能·windows·git·环境变量·scoop
无限进步_2 天前
面试题 02.04. 分割链表 - 题解与详细分析
c语言·开发语言·数据结构·git·链表·github·visual studio