Git 日常操作全攻略:拉取 / 提交代码 + 高频命令速查

作为开发者,Git 是日常工作中绕不开的版本控制工具 —— 从协作开发拉取最新代码,到提交自己的开发成果,再到处理分支、回滚代码等场景,熟练掌握核心命令能大幅提升开发效率。本文整理了 Git 最核心的「拉取代码、提交代码」流程,以及日常工作中高频使用的命令,既是新手入门指南,也可作为老开发者的速查手册。

一、核心操作:从仓库拉取项目代码

拉取代码分为两种场景:首次克隆远程仓库本地已有项目拉取最新更新,对应不同的命令和操作逻辑。

1. 场景 1:首次克隆远程仓库(本地无代码)

如果是第一次获取项目代码,使用git clone命令将远程仓库完整克隆到本地,步骤如下:

# 1. 打开终端,进入要存放代码的目录(比如~/projects) cd ~/projects # 2. 克隆远程仓库(支持HTTPS/SSH两种方式,推荐SSH,免重复输密码) # HTTPS方式(通用,无需配置密钥) git clone https://github.com/用户名/仓库名.git # SSH方式(需提前配置SSH密钥,更安全) git clone [email protected]:用户名/仓库名.git # 3. 克隆完成后,进入项目目录 cd 仓库名 # 4. 初始化Git仓库(首次需要执行) git init

关键说明

  • 克隆时会自动创建本地仓库,并关联远程仓库(默认远程仓库名称为origin);

如果需要克隆指定分支(而非默认 main/master),添加-b参数:

git clone -b 分支名 https://github.com/用户名/仓库名.git 

2. 场景 2:本地已有项目,拉取远程最新代码

日常开发中,每次开始工作前都需要拉取远程最新代码(避免和同事的代码冲突),核心命令是git pull

# 1. 先进入项目目录 cd 你的项目目录 # 2. 拉取当前分支的远程最新代码(最简单方式) git pull # 进阶:指定远程仓库和分支(适用于关联多个远程仓库的场景) git pull origin 分支名 # 比如git pull origin develop 

避坑提示

  • 拉取前建议先执行git status查看本地是否有未提交的修改,若有未提交内容,拉取可能触发冲突;
  • 若拉取时提示冲突,先解决冲突(保留需要的代码),再提交冲突文件。

二、核心操作:提交代码到远程仓库

提交代码不是一步到位,而是遵循「暂存→提交→推送」的流程,确保代码可追溯、版本清晰。

# 首次配置即可 # 配置全局用户名(可以是你的昵称/真实姓名,比如 "xiaoming") git config --global user.name "你的名字" # 配置全局邮箱(建议用你注册 Git 仓库平台的邮箱,如 Gitee/GitHub/GitLab 邮箱) git config --global user.email "你的邮箱@example.com"

完整提交流程(4 步走)

# 1. 查看本地代码修改状态(必做!确认要提交的文件) git status # 2. 将修改的文件加入暂存区(核心:指定要提交的文件) # 方式1:提交所有修改的文件(新增/修改/删除) git add . # 方式2:提交指定文件(推荐,避免提交无关文件) git add 文件名1 文件名2 # 比如git add src/main.py config.yaml # 3. 将暂存区的文件提交到本地仓库(必须写提交信息,规范!) git commit -m "提交信息:清晰描述做了什么修改" # 示例:git commit -m "feat: 新增用户登录接口的测试用例" # 4. 关联远程仓库(首次推必做) git remote add origin [email protected]:你的用户名/仓库名.git # 5. 首次推送(绑定分支) git push -u origin 分支名 # 6. 后续推送只需执行(不用写地址/分支) git push # 进阶:指定远程仓库和分支(适用于多远程/多分支场景) git push origin 分支名 # 比如git push origin feature/user-login 

提交规范(团队协作必备)

提交信息建议遵循「类型:描述」的格式,便于后续追溯和自动化生成日志,常见类型:

  • feat:新增功能(比如 feat: 新增订单查询接口);
  • fix:修复 bug(比如 fix: 修复登录时验证码失效的问题);
  • docs:仅修改文档(比如 docs: 更新 README.md);
  • style:代码格式调整(无逻辑修改,比如缩进、空格);
  • refactor:代码重构(无新增功能 / 修复 bug);
  • test:新增 / 修改测试代码;
  • chore:构建 / 工具配置修改(比如 chore: 升级依赖版本)。

常见问题处理

推送到远程后发现错误(需撤回推送):谨慎使用,避免覆盖团队代码!

# 回滚本地提交(保留代码修改,仅撤销commit) git reset --soft HEAD^ 

提交后发现漏加文件 / 提交信息写错:

# 补充文件并合并到上一次提交(保留原提交记录,仅修改内容) git add 漏加的文件名 git commit --amend --no-edit # --no-edit表示不修改提交信息 # 若需要修改提交信息,去掉--no-edit,手动输入新信息 git commit --amend 

 git push失败:出现相关报错 hint: use 'git pull' before pushing again.
(原因:远程仓库的 mall-admin-web 分支有本地没有的提交记录)

# 解决步骤:执行这条命令后再重新提交 git pull origin mall-admin-web --allow-unrelated-histories --no-rebase # --allow-unrelated-histories:解决本地 / 远程分支 “无共同提交历史” 的核心参数; # --no-rebase:用最简单的 merge 方式合并,避免新手容易出错的 rebase 操作。

三、日常高频 Git 命令速查(分类整理)

1. 仓库 / 状态查看类(最常用)

命令用途示例
git status查看本地代码修改状态(哪些文件新增 / 修改 / 删除)git status
git log查看提交历史(按时间倒序)git log(简洁版:git log --oneline
git branch查看本地分支(* 标注当前分支)git branch(查看远程分支:git branch -r
git remote -v查看本地关联的远程仓库地址git remote -v

2. 分支操作类(协作开发核心)

# 1. 创建并切换到新分支(日常开发必用,避免直接改主分支) git checkout -b 新分支名 # 比如git checkout -b feature/order-query # 2. 切换到已有分支 git checkout 分支名 # 比如git checkout develop # 3. 删除本地分支(开发完成后清理) git branch -d 分支名 # 强制删除未合并的分支:git branch -D 分支名 # 4. 合并分支(比如将feature分支合并到develop) git checkout develop # 先切换到目标分支 git merge feature/order-query # 合并指定分支 

3. 代码撤销 / 回滚类(救急必备)

# 1. 撤销工作区的修改(未add的文件,恢复到最近一次commit状态) git checkout -- 文件名 # 比如git checkout -- src/main.py # 2. 撤销暂存区的文件(已add但未commit) git reset HEAD 文件名 # 撤销指定文件;撤销所有:git reset HEAD . # 3. 回滚到指定版本(根据commit ID,可从git log获取) git reset --hard 提交ID # 谨慎使用!会清空本地未提交的修改 

4. 远程仓库操作类

# 1. 关联远程仓库(本地初始化仓库后使用) git remote add origin 远程仓库地址 # 比如git remote add origin [email protected]:xxx/xxx.git # 2. 查看远程分支最新状态(不拉取代码,仅同步分支信息) git fetch origin # 3. 删除远程分支(比如删除已合并的feature分支) git push origin --delete 分支名 

四、日常使用避坑指南

  1. 避免直接在主分支(main/master)开发:始终创建 feature 分支开发,合并前先拉取主分支最新代码,减少冲突;
  2. 提交前必看git status:防止提交无关文件(比如 IDE 配置文件、本地测试文件);
  3. 冲突处理优先沟通:遇到代码冲突时,先和修改该部分代码的同事确认,避免盲目覆盖。

拉取代码前先提交本地修改:或使用git stash暂存修改(拉取后再恢复):

# 暂存本地修改 git stash # 拉取远程代码 git pull # 恢复暂存的修改 git stash pop 

五、总结

Git 的核心价值是「版本控制 + 协作开发」,日常使用无需死记所有命令,重点掌握:

  1. 拉取代码:git clone(首次)/git pull(更新);
  2. 提交代码:git addgit commitgit push
  3. 分支管理:git checkout -b(新建分支)、git merge(合并分支);
  4. 状态查看 / 撤销:git statusgit checkout --git reset

熟练掌握这些核心操作,再结合本文的速查命令,就能应对 90% 以上的日常开发场景。建议将本文收藏,遇到问题时快速查阅,比反复搜教程更高效。

Read more

Java 中间件:Dubbo 服务降级(Mock 机制)

Java 中间件:Dubbo 服务降级(Mock 机制)

👋 大家好,欢迎来到我的技术博客! 📚 在这里,我会分享学习笔记、实战经验与技术思考,力求用简单的方式讲清楚复杂的问题。 🎯 本文将围绕Java中间件这个话题展开,希望能为你带来一些启发或实用的参考。 🌱 无论你是刚入门的新手,还是正在进阶的开发者,希望你都能有所收获! 文章目录 * Java 中间件:Dubbo 服务降级(Mock 机制) * 什么是服务降级? * Dubbo Mock 机制简介 * Mock 的触发条件 * Dubbo Mock 的配置方式 * 1. XML 配置方式 * 2. 注解配置方式(推荐) * 3. 自定义 Mock 类 * 4. 强制 Mock(force) * Mock 机制的工作原理 * 实战案例:电商系统中的服务降级 * 场景描述 * 1. 定义服务接口 * 2. 实现

By Ne0inhk
【拥抱AI】openclaw的安装使用和部分建议

【拥抱AI】openclaw的安装使用和部分建议

一、环境准备与安全考虑 OpenClaw 具备系统级权限(Agent Mode),意味着它可以执行 Shell 命令、访问文件系统等。因此,强烈建议在以下环境中运行: * 推荐:Linux 服务器(如 Ubuntu 22.04)或 macOS。 * Windows 用户:强烈建议使用 WSL2(Linux 子系统),不要直接在原生 Windows 环境中运行(除非你非常了解风险),因为 Windows 的文件系统权限模型较为脆弱,可能导致误删系统文件。 最低硬件要求: * 内存:8GB(建议 16GB,尤其是使用本地模型时)。 * 磁盘:至少 20GB 可用空间(插件和模型缓存可能占用较多磁盘)。 * CPU:64位处理器,若运行大型语言模型(LLM)

By Ne0inhk
深度解析 MySQL 与 MCP 集成:从环境构建到 AI 驱动的数据交互全流程

深度解析 MySQL 与 MCP 集成:从环境构建到 AI 驱动的数据交互全流程

前言 在当前大语言模型(LLM)应用开发的浪潮中,MCP(Model Context Protocol)协议正在成为连接 AI 模型与本地数据设施的关键桥梁。本文将以 MySQL 数据库为例,详细拆解如何通过 MCP 协议让 AI 模型直接操作关系型数据库,涵盖从服务器发现、数据库架构设计、数据初始化、MCP 配置文件编写到复杂自然语言查询与写入的全过程。 第一部分:MCP 服务器的发现与配置获取 在进行任何数据交互之前,首要任务是确立连接协议与服务源。通过蓝耘 MCP 广场,开发者可以快速检索并获取所需的 MCP 服务器配置。 在搜索栏输入 mysql 关键字,系统会立即检索出相关的 MCP 服务器资源。如下图所示,搜索结果中清晰展示了 MySQL 对应的 MCP 服务卡片。 点击选中该 MCP 服务器后,

By Ne0inhk
AI 在生活中的应用:深度解析与技术洞察

AI 在生活中的应用:深度解析与技术洞察

目录 引言 AI 在出行领域的应用 自动驾驶汽车 智能交通管理系统 AI 在智能家居中的应用 智能语音助手 智能家电互联 AI 在医疗保健领域的应用 疾病诊断辅助 智能健康监测 AI 在娱乐领域的应用 个性化内容推荐 游戏开发与互动 总结 引言 在当今数字化浪潮中,人工智能(AI)已悄然融入我们生活的方方面面,从日常出行到智能家居,从医疗保健到娱乐消费,AI 正以前所未有的速度改变着我们的生活方式。本文将深入探讨 AI 在生活中的各类应用,并剖析背后的关键技术,带您领略 AI 的魅力与力量。 AI 在出行领域的应用 自动驾驶汽车 自动驾驶无疑是 AI 在出行领域最具代表性的应用。汽车配备了多种传感器,如激光雷达、摄像头、毫米波雷达等,这些传感器如同汽车的“眼睛”,实时收集周围环境信息。 * 技术原理:以深度学习算法为核心,

By Ne0inhk