还在只会 add/commit/push?醒醒吧:这 15 条 Git 命令,能把你从“记录员”直接抬成“仓库法师”

我有一支技术全面、经验丰富的小型团队,专注高效交付中等规模外包项目,有需要外包项目的可以联系我

每个开发者都背得出 Git 的基础咒语:add、commit、push。它安全、顺手、像一条走惯了的老路。可问题是——真正让你变强的,不在路面上,而在路面下面:Git 还藏着一堆“能让你工作流瞬间开挂”的硬核命令。

把这 15 个命令吃透,你得到的不只是速度。你会更有底气,流程更稳,历史更干净,甚至连 commit 记录都会好看得像艺术品。

来,开打。

1)git rebase -i(交互式变基)

它干嘛:在把分支合进共享分支前,帮你把提交历史“整理成能见人”的样子:压缩(squash)、改消息(reword)、编辑(edit)、丢弃(drop)都行。

优点:

  • 让历史线性、干净、可读

  • 把零散改动归并成“逻辑提交”

  • 大项目里维持专业提交记录几乎离不开它

缺点:

  • 别对已经 push 到公共/共享分支的提交用它:它会重写历史,队友会原地爆炸

  • 对新手来说略吓人、也容易误操作

Pro Tip:PR 前在功能分支上用:

git rebase -i main

把 “WIP”“fix typo” 这种碎提交,压成更像样的功能提交。

2)git stash你的工作“快速存档”

它干嘛:把未提交的改动临时塞进“抽屉”,让你立刻回到干净工作区去处理别的事。

优点:

  • 切换上下文快到飞起

  • 不用为了换任务硬凑“半成品提交”

  • 能存多个 stash,之后再拿出来

缺点:

  • 很容易忘了抽屉里塞了啥(用git stash list查)

  • stash 只在本地,不会推到远端

Pro Tip:给 stash 起名字:

git stash push -m "descriptive message"

恢复用:git stash pop(恢复并移除)或git stash apply(恢复但保留)。

3)git bisect回归 bug 猎手

它干嘛:用二分法帮你找到“到底是哪一次提交把 bug 引进来的”。你标一个 good(没 bug)和 bad(有 bug),Git 自动切换提交让你测。

优点:

  • 找回归问题快很多,节省大量人肉排查时间

  • 把枯燥过程自动化

缺点:

  • 需要明确可验证的 good/bad 标准

  • 如果测试只能手动点点点,过程会慢

Pro Tip:能自动测就自动测:

git bisect run <script_name>

Git 会每步运行脚本,最终定位“罪魁祸首提交”。

4)git reflog你的“后悔药”

它干嘛:记录你本地仓库发生过的一切:commit、checkout、rebase、merge……你走过的路都在这里。

优点:

  • 能救回“被你 reset --hard 或 rebase 搞丢”的提交

  • 本地事故的终极撤销键

缺点:

  • 记录可能很长也很神秘

  • reflog 是本地的,并且默认大约 90 天过期

💡Pro Tip:rebase 搞崩了?用 reflog 找到出事前的 hash:

git reflog git reset --hard <hash>

5)git cherry-pick精准摘樱桃

它干嘛:把某个提交(或一组提交)的改动“复制”到当前分支。

优点:

  • 热修复神器:从功能分支摘一个修 bug 的提交直接贴到 main

  • 跨分支搬运少量改动,不用整枝合并

缺点:

  • 用多了会产生重复提交,历史变乱

  • 也会冲突,和 merge/rebase 一样躲不掉

Pro Tip:少量用很香;如果你在同一分支上摘很多次,通常说明应该 merge 或 rebase 了。

6)git worktree多线作战神器

它干嘛:同一个仓库开多个工作目录,分别对应不同分支。你可以同时开 main 和 feature,不用 stash 来回切。

优点:

  • 上下文切换“物理隔离”,体验像开了分身

  • 一边跑测试/构建,一边继续写代码

缺点:

  • 多占一点磁盘

  • 需要多管理一个概念

Pro Tip:给某分支开一个新目录:

git worktree add ../my-feature-branch feature/branch-name

7)git log --oneline --graph --allASCII 历史图

它干嘛:用简洁的一行日志 + 图形结构,显示所有分支的分叉与合并关系。

优点:

  • 一眼看懂分支拓扑

  • 比默认 log 清晰太多

缺点:

  • 基本没有(纯提升)

Pro Tip:做个别名直接封神:

git config --global alias.lol "log --oneline --graph --decorate --all"

以后一句git lol就有漂亮历史图。

8)git commit --amend临门一脚修正

它干嘛:修改最近一次提交:改提交信息,或把漏加的改动塞进去。

优点:

  • 修 commit message 拼写

  • 漏加文件不用再造一个 “oops commit”

缺点:

  • 和 rebase 一样会重写历史:别 amend 已经推到共享分支的提交

Pro Tip:不改 message 只补改动:

git commit --amend --no-edit

9)git diff --staged提交前体检

它干嘛:看“已暂存内容”和“上一提交”的差异,也就是你下一次 commit 真正会包含的内容。

优点:

  • 防止把调试代码/注释/乱改一起提交

  • 帮你写更准确的提交说明

缺点:

  • 容易忘,只用git diff看得不够精准

Pro Tip:把它当成提交必做动作,真的能救命。

10)git restore现代撤销命令

它干嘛:更直观地恢复文件,逐步替代checkout/reset在文件级操作上的“迷惑行为”。

优点:

  • 意图清晰

  • 丢弃未暂存改动:

    git restore <file>
  • 取消暂存:

    git restore --staged <file>

缺点:

  • 老版本 Git 可能没有

  • 习惯了 checkout/reset 的人要换脑回路

Pro Tip:早点适应restore,它更不容易写错。

11)git blame代码侦探

它干嘛:逐行告诉你:谁最后改了这一行、在哪个提交里改的。

优点:

  • 理解“为什么这么写”非常有用

  • 让你知道应该找谁问这段逻辑

缺点:

  • 容易被用来“甩锅”——请把它当学习工具,而不是指责工具

Pro Tip:忽略空格改动:

git blame -w

12)git clean工作区清洁工

它干嘛:删除未跟踪文件(构建产物、日志、临时文件等)。

优点:

  • 让工作区真正干净

  • 释放磁盘空间

缺点:

  • 危险:删了就没了,没撤销

Pro Tip:永远先 dry-run:

git clean -n

确认无误再强制删除:

git clean -f

13)git tag发布锚点

它干嘛:给某个提交打一个永久标签,常用于版本发布(v1.0.0 之类)。

优点:

  • 为特定版本提供稳定引用

  • 正规发布流程必备

缺点:

  • 轻量 tag 只是指针;发布建议用带元数据的注释 tag

Pro Tip:发布永远用 annotated tag:

git tag -a v1.5.0 -m "Release version 1.5.0" git push --tags

14)git submodule“项目套项目”管理器

它干嘛:把另一个 Git 仓库作为子目录嵌进来,但保留其独立历史。

优点:

  • 适合引入有独立生命周期的共享库/组件

  • 能锁定外部仓库到某个 commit

缺点:

  • 工作流更复杂(git submodule update --init

  • 新人常懵:为啥这个文件夹是空的?

Pro Tip:克隆时一把带走:

git clone --recurse-submodules <repo-url>

15)git shortlog贡献汇总器

它干嘛:把 git log 按作者分组,快速看谁做了什么。

优点:

  • 生成 release notes 或贡献概览很方便

  • -n按提交数排序,-s只显示数量

缺点:

  • 提交数不等于生产力,但作为概览入口挺好用

全栈AI·探索:涵盖动效、React Hooks、Vue 技巧、LLM 应用、Python 脚本等专栏,案例驱动实战学习,点击二维码了解更多详情。

最后:

CSS终极指南

Vue 设计模式实战指南

20个前端开发者必备的响应式布局

深入React:从基础到最佳实践完整攻略

python 技巧精讲

React Hook 深入浅出

CSS技巧与案例详解

vue2与vue3技巧合集

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1125822.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

什么是MD-CLI

文章目录CLI和MD-CLI是什么为什么要有MD-CLIMD-CLI和传统CLI相比有什么优势MD-CLI和YANG是如何对应的MD-CLI&#xff08;Model-Driven Command Line Interface&#xff09;是基于YANG模型生成的既有机机交互又有人机交互能力的命令行工具。相比传统CLI&#xff0c;具有配置逻辑…

自定义tabs(支持横向/竖向排列)

效果展示&#xff1a;组件代码&#xff1a;CustomTabs.vue组件代码如下&#xff1a;<template><div class"custom-tabs" :class"[tabs-${type}, { tabs-vertical: type vertical }]"><!-- 横向布局 --><template v-if"type ho…

小文件自动化处理流程

# 1. 查看表的存储目录&#xff08;先执行show create table your_table;找到LOCATION&#xff09; hdfs dfs -ls /user/hive/warehouse/your_db.db/your_table/pt2026-01-06# 2. 【新增】备份原目录小文件&#xff08;防止误删&#xff0c;关键&#xff01;&#xff09; hdfs …

2026大模型风口已至!产品经理学习路线+免费资料,助你月薪30K+,建议收藏!

本文详细介绍了大模型产品经理的五阶段学习路线&#xff1a;基础知识、大模型技术、产品管理、实战经验和持续提升。行业数据显示大模型领域存在47万岗位缺口&#xff0c;初级工程师平均薪资达28K。文章提供四阶段实战学习计划&#xff08;初阶应用、高阶应用、模型训练、商业闭…

金属导电涂层双极板垂直比电阻仪

金属导电涂层双极板垂直比电阻仪 电导率与电阻的关系Rρll/σ定义或解释 电阻率的倒数为电导率。σ1/ρ (2)单位: 在国际单位制中,电导率的单位是西门子/米。 (3)说明 电导率的物理意义是表示物质导电的性能。电导率越大则导电性能越强,反之越小。金属导电涂层双极板垂直比电…

C++中的指针与内存管理

引言 在C++编程中,指针和内存管理一直是让许多程序员头疼的问题。今天,我们通过一个实际的例子来探讨C++中指针的使用,特别是关于**悬空指针(Dangling Pointer)和数组越界(Out of Bounds Access)**的问题。 实例分析 假设我们有一个音频播放程序,需要根据不同类别的…

零基础转行AI大模型产品经理,我的完整学习路线与资源分享

文章讲述了作者从风景园林专业成功转型为AI大模型产品经理的经历。通过自学产品知识、参与项目实践&#xff0c;最终获得AI领域龙头企业offer。作者指出AI产品经理入门成本不高&#xff0c;无需深入算法细节&#xff0c;而应关注用户和业务视角。文章提供了AI大模型学习的七个阶…

NestJS 中动态 Swagger 参数文档的实现

在 NestJS 项目中,常常需要对 API 的参数进行验证和文档化。特别是在使用 UUID 作为参数时,确保参数格式的正确性以及在 Swagger 中正确展示这些参数是非常重要的。今天我们来探讨如何在 NestJS 中创建一个自定义装饰器来验证 UUID 格式,并动态生成 Swagger 文档。 背景介绍…

双极板材料四探针低阻电阻测试仪

双极板材料四探针低阻电阻测试仪 四端测试法是目前较先进之测试方法&#xff0c;主要针对高精度要求之产品测试&#xff1b;本仪器广泛用于生产企业、高等院校、科研部门&#xff0c;是检验和分析导体材料和半导体材料质量的一种重要的工具。双极板材料四探针低阻电阻测试仪 …

Java 程序员如何快速上手浏览器插件开发?一篇文章讲透 Chrome Extension

作者背景&#xff1a;8 年 Java 开发 阅读建议&#xff1a;收藏 实操 适合人群&#xff1a;Java / 后端 / 想做自动化工具的程序员一、写在前面&#xff1a;我为什么要学浏览器插件&#xff1f; 作为一个 Java 程序员&#xff0c;我以前一直有个刻板印象&#xff1a;浏览器插件…

制码指南:轻松生成文本二维码和文件二维码

对于想要生成二维码的用户来说&#xff0c;了解基本步骤至关重要。生成二维码的过程并不复杂&#xff0c;您只需&#xff1a; 选择工具&#xff1a;通常可以在网络上找到多种免费的二维码生成工具。输入内容&#xff1a;无论是上传文件还是输入文本&#xff0c;确保信息准确无…

MATLAB实现稀疏编码中的基学习:使用拉格朗日对偶方法带L2范数约束

在稀疏编码(Sparse Coding)和字典学习领域,一个核心任务是从数据中学习一组过完备基(dictionary或basis),使得数据样本可以用这些基的稀疏线性组合来表示。传统的字典学习通常交替优化稀疏系数和字典,但计算开销较大。 今天我们要探讨一种高效的字典学习方法:针对固定…

速卖通关键词搜索接口深度实战:智能优化与跨境搜索精准化全方案

速卖通&#xff08;AliExpress&#xff09;关键词搜索接口是跨境选品、市场调研、竞品监控的核心入口。不同于国内电商搜索接口&#xff0c;速卖通搜索需适配 “多语言关键词、跨境筛选条件、区域化商品展示” 等特色场景&#xff0c;常规调用方案常面临关键词匹配度低、筛选条…

低代码破局零售电商数字化转型:从流量争夺到效率革命

年轻消费群体崛起&#xff0c;“线上种草、线下拔草”成常态&#xff0c;直播带货、社区团购等新场景涌现&#xff0c;零售电商行业竞争已从“流量争夺”升级为“效率比拼”。但多数企业数字化转型步履维艰&#xff1a;线上线下数据孤岛林立&#xff0c;用户信息不通&#xff1…

融云 回顾:「韧性」生长,「邪修」破局

2025 的进度条已经拉满&#xff0c;各个平台的年度词单也都如期而至了。从大洋彼岸权威词典的严肃定义&#xff0c;到中文互联网上脑洞大开的野生热梗&#xff1b;从传统媒体的时代注脚&#xff0c;到社交平台深夜刷屏的情绪共鸣。虽然语境不同、出处各异&#xff0c;但这些词一…

二维码工具是什么?主要有哪几种应用?

二维码工具的出现&#xff0c;极大地方便了信息的传递与管理。主要功能包括信息存储、链接活码和设备巡检二维码等。其中&#xff0c;信息存储让用户可以快速获取网址、文本和联系方式等信息&#xff1b;链接活码技术可实现内容实时更新&#xff0c;提升用户使用体验&#xff1…

Doris 开启 Partial Update:实现不存在就插入,存在就更新,NULL 不更新原值

这篇文章用一个测试表完整跑通 Doris 的 Partial Column Update&#xff08;部分列更新&#xff09;&#xff1a; 不存在就插入存在就只更新指定列值为 NULL 时不覆盖原值&#xff08;保持原值&#xff09; 1. 先搞懂&#xff1a;Partial Update 的前提条件 1.1 必须是 Uniqu…

docker快速部署docker私有仓库

前言 记录docker快速部署docker私有仓库命令 docker部署私有仓库 1. 创建认证密码文件 安装htpasswd工具 # CentOS/RHEL centos执行这个 yum install -y httpd-tools # Ubuntu/Debian apt-get install -y apache2-utils 2. 创建认证目录 mkdir -p /zero/registry/auth sudo…

【确认出席】卢勇 上海市数商协会秘书长丨上海·1月14日

第八届金猿论坛嘉宾“本次大会&#xff0c;现场将会举行十年先锋人物、十年标杆产品、CIO、数据要素价值释放、AI Infra领先企业、创新技术、Data Agent创新应用、国产化优秀代表厂商八项大奖的“第八届金猿季颁奖典礼”欢迎报名参与&#xff0c;观礼见证。大数据产业创新服务媒…

AI+敏捷时代,专项测试人员是否还有存在的必要?

一、PO 程序员 AI 能否覆盖全部测试需求&#xff1f;1. PO&#xff08;产品负责人&#xff09;的角色PO关注的是业务价值和用户需求&#xff0c;通过用户故事表达功能期望。虽然PO会参与验收&#xff08;UAT&#xff09;&#xff0c;但通常不具备系统性测试思维&#xff0c;也…