开发指南:Git日常维护与常用命令
一、前言在企业项目里会用git add、git commit和git push通常只能完成“把代码交上去”。真正影响开发效率的是后面的事情同事之间同时修改同一个文件导致代码冲突怎么办需求做到一半线上出了故障怎么办有问题的代码已经合进主干怎样撤回才不会连带影响别人的工作Git 能帮助团队隔离修改、审查差异、追踪问题并在操作失误后找回部分工作。但这些能力需要配合明确的协作规则。分支随意创建、提交混在一起、发布版本没有记录命令记得再熟也容易出错。本文以一个订单服务为例给出一套可以在团队中执行的工作流程。二、接手项目确认身份、仓库和分支1、先了解分支情况分支或标签示例用途与约束主干分支master保护分支通过评审合入发布时打标签发布维护分支release/v1.0.0停止增加新需求只修本次发布的问题开发分支dev_1.0.0日常开发、测试中发现的问题发布标签v1.0.0标记确定的发布提交发布后不随意移动2、下载项目并配置提交身份git clone gitgit.example.com:backend/order-service.gitcd order-service# 只配置当前仓库避免公司项目和个人项目混用身份git config user.name 张三git config user.email zhangsanexample.com# 查看当前仓库生效的身份git config user.namegit config user.email如果所有仓库都使用同一个身份可以在配置时加--global。提交身份用于记录作者不等于远端登录身份SSH 密钥或访问令牌需要按公司要求单独配置。如果已有本地项目、尚未纳入 Git 时才使用git init。从远端clone下来的仓库已经初始化不需要重复执行。3、确认当前操作对象git remote -v # 查看远端地址git status # 查看分支、文件变化和进行中的操作git branch --show-currentgit branch -a # 查看本地分支和远端跟踪分支git branch -vv # 查看本地分支的上游关系如果公司迁移了仓库地址可以修改远端配置git remote set-url origin gitgit.example.com:new-team/order-service.gitgit remote -v三、Git提交过程1、查看修改内容文件变化情况git status2、获取远端变化从远程仓库origin下载最新的提交、分支和标签信息到本地但不会自动合并或修改你当前的工作区。可以理解为“看看远程有什么新东西”git fetch origin3、更新已有本地开发分支git switch dev_1.0.0 #切换分支git pull --ff-only origin dev_1.0.0 #从远端origin拉取代码1以前一般是通过checkout切换分支Git 2.23版本开始可以通过switch切换分支2pull会先获取远端变化再按参数将指定分支整合到当前分支3--ff-only只允许快进更新。本地和远端各自新增提交、历史已经分叉时它会停止不会自动制造一次合并。此时先检查提交再按团队规则选择 merge 或 rebase。4、修改内容的前后对比git diff5、提交并推送特别注意push之前建议先pull可以减少代码冲突git commit -m feat(order): 增加订单导出日期范围校验git push -u origin dev_1.0.06、git提交历史git loggit show四、常见问题处理1、 解决 merge 冲突git statusgit diff --name-only --diff-filterU打开冲突文件根据双方改动情况进行处理一定要仔细检查不要把其他同事提交的内容给覆盖了。比如一方增加权限校验另一方增加参数检查最终通常要保留两种检查并确定合理顺序。直接选择“全部接受当前”可能丢掉另一方的工作。修改后删除冲突标记暂存文件并继续git add src/main/java/com/example/order/OrderExportService.javagit diff --cached --checkgit merge --continue操作前保持工作区干净能减少中止合并时恢复现场的困难。合并完成后重新检查最终差异并运行相关测试当然我们日常一般可以借助TortoiseGit、IDEA、SourceTree等工具来更方便进行代码冲突检查处理2、选怎merge还是rebasegit mergegit rebase历史形态产生一个合并提交有分叉一条直线干净提交哈希原提交不变会生成新提交哈希变了是否保留真实时间线保留被改写冲突处理一次性解决可能每个提交都要解一次适用场景公共分支、已推送的分支本地私有分支推送前整理简而言之merge 保留历史真相rebase 追求历史整洁。3、临时切换任务用 stash 保存未完成修改需求还没完成突然要排查一个问题不必为了切换分支就丢掉当前代码。git stash push -u -m 订单导出开发中临时保存git stash list-u会包含未跟踪文件不包含.gitignore忽略的文件。完成其他任务、回到原分支后确认要恢复哪一项git switch dev_1.0.0git stash listgit stash show --stat stash{0}git stash apply stash{0}git status-stat只显示统计信息文件名 增删行数不显示逐行 diffstash{0}最近一次 stash最新确认内容完整、冲突已解决后再单独删除对应记录git stash drop stash{0}4、撤销和恢复先判断修改到了哪一步1已暂存新增的文件或者做了修改的文件但不想提交这个文件git restore --staged src/main/java/com/example/order/OrderExportService.java取消暂存也就是不再commit了工作区修改仍保留改动的内容依然在。特别注意Git 2.23 引入--staged表示操作对象是暂存区。2确定丢弃某个文件的未暂存修改不增加staged选项git restore -- src/main/java/com/example/order/OrderExportService.java3最近一次提交只在本地已commit未push想要撤回git reset --soft HEAD~1它把分支回退一个提交保留暂存区和工作区内容。常见 reset 模式的区别如下命令提交位置暂存区工作区git reset --soft HEAD~1回退一个提交保留保留git reset --mixed HEAD~1回退一个提交重置到目标提交保留git reset --hard HEAD~1回退一个提交重置到目标提交覆盖受影响内容4错误提交已经合入共享分支已commit已push通过新分支创建反向提交再评审合入git fetch origingit switch -c fix/revert-export --no-track origin/dev_1.0.0git show commit-id # 核实是否为已提交的内容git revert commit-id # 不改历史生成反向提交git push -u origin fix/revert-export# → 提 PR等 review 和 CI再合并五、常用命令速查看当前状态git status看未暂存差异git diff看准备提交的差异git diff --cached获取远端变化git fetch origin快进更新当前分支的上游内容git pull --ff-only创建并切换分支git switch -c feature/任务名切换已有分支git switch 分支名暂存指定文件git add 文件路径按块选择修改git add -p提交修改git commit -m 说明首次推送并设置上游git push -u origin 分支名合并指定分支到当前分支git merge origin/目标分支临时保存现场git stash push -u -m 说明取消暂存保留修改git restore --staged 文件路径撤销已共享的普通提交git revert 提交SHA查看近期提交git log --oneline -10查看某次提交git show 提交SHA六、小结以上是Git日常开发常用命令详解以及一些日常遇到情况的处理方式。欢迎各位同学交流学习

相关新闻

海天长飞亚控制器系统注塑机数据采集网关联网方案 第三十四章

海天长飞亚控制器系统注塑机数据采集网关联网方案 第三十四章

1. 方案背景长飞亚注塑机采用自主研发的控制器系统,具备较高的控制精度和稳定性。随着注塑车间数字化、智能化转型的推进,需要将注塑机的运行状态、工艺参数、产量数据等实时采集并上传至上层管理系统(如 MES、ERP 或云端平台)。由…

2026/10/11 6:04:00 阅读更多 →
typescript-eslint 的 `rule-schema-to-typescript-types` 包:从 ESLint 规则 Schema 生成 TypeScript 类型定义

typescript-eslint 的 `rule-schema-to-typescript-types` 包:从 ESLint 规则 Schema 生成 TypeScript 类型定义

开发工具静态分析Lint代码质量 【免费下载链接】typescript-eslint :sparkles: Monorepo for all the tooling which enables ESLint to support TypeScript 项目地址: https://gitcode.com/GitHub_Trending/ty/typescript-eslint 点击查看 免费下载 typescript-es…

2026/10/11 6:04:00 阅读更多 →
【Linux网络】_udp_socket(认识)

【Linux网络】_udp_socket(认识)

hello~ 很高兴见到大家! 这次带来的是Linux网络中关于网络基础这部分的一些知识点,如果对你有所帮助的话,可否留下你宝贵的三连呢? 个 人 主 页: 默|笙 文章目录一、Echo sever (v1代码)1.1 给程序占好本机的 IP 端口1. socket (创建套接字对象)2. 填充…

2026/10/11 6:04:00 阅读更多 →

最新新闻

机房工勘图纸的毫米可信度:nVisual DCDesigner 的坐标系、标尺与尺寸可溯源设计

机房工勘图纸的毫米可信度:nVisual DCDesigner 的坐标系、标尺与尺寸可溯源设计

机房工勘图纸的毫米可信度:nVisual DCDesigner 的坐标系、标尺与尺寸可溯源设计 摘要:工勘图纸的质量标准不是「画得像」,而是「经得起追问」——任何一个尺寸都能说清从哪里量、在哪里、为什么是这个值。DCDesigner 用一套完整的坐标约定、录…

2026/10/11 9:02:45 阅读更多 →
C++过滤器模式实战:从“开卷有IF”到组合过滤重构烂代码

C++过滤器模式实战:从“开卷有IF”到组合过滤重构烂代码

从"开卷有IF"到"组合过滤":我如何用C过滤器模式重构了一堆烂代码如果你写过一段时间C,大概率会经历这么一幕:某个核心模块里,一个函数动辄几百行,里面全是if嵌套,每加一条业务规则就往…

2026/10/11 9:02:45 阅读更多 →
气动搅拌机定制厂家怎么选?盐城策途精密制造厂家省心可靠

气动搅拌机定制厂家怎么选?盐城策途精密制造厂家省心可靠

你好,我是专注于SEO和品牌软文创作的助理,将为你生成符合要求的3000字左右散文式软文,严格遵循指定结构和格式。 气动搅拌机定制厂家怎么选?盐城策途精密制造厂家省心可靠 先搞懂气动搅拌机的核心逻辑,外行也能快速辨优劣 很多工…

2026/10/11 9:02:45 阅读更多 →
镀锌桥架采购常见问题解答 新明电气 大厂直供 降低采购成本

镀锌桥架采购常见问题解答 新明电气 大厂直供 降低采购成本

镀锌桥架作为电缆敷设体系中的基础支撑构件,凭借热镀锌工艺带来的防锈防腐能力与较高的经济性,长期占据工业与基建项目线缆配套市场的重要位置。然而在实际采购过程中,不少项目采购人员由于对产品工艺、规格体系、供货周期缺乏系统了解&#…

2026/10/11 9:02:45 阅读更多 →
2026“人工智能+人社”政策落地:企业培训考试系统如何利用知识图谱与RAG实现岗位精准培训?

2026“人工智能+人社”政策落地:企业培训考试系统如何利用知识图谱与RAG实现岗位精准培训?

一、2026年“人工智能人社”政策释放了哪些技术信号? 2026年,人力资源社会保障部、国家发展改革委、工业和信息化部、国家数据局联合印发《关于加快推进“人工智能+人社”应用发展的实施意见》(人社部发〔2026〕40号)…

2026/10/11 9:02:45 阅读更多 →
SpringBoot+Vue仿淘宝毕设系统:架构设计、数据库与部署全解析

SpringBoot+Vue仿淘宝毕设系统:架构设计、数据库与部署全解析

每次有学弟学妹来找我聊毕设选题,我都会先把这类项目甩给他们看——SpringBootVue全家桶的PC端仿淘宝系统管理平台。Java做后端、MySQL存数据,前后端分离,网上能拿到完整源码。这不是一个花架子,而是一条把大学四年学过的Java、数…

2026/10/11 9:01:44 阅读更多 →

日新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/11 0:00:27 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/11 0:00:27 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/10 5:23:50 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/9 21:32:20 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/10 10:38:42 阅读更多 →