初级程序员必备的十大技能之 Git 版本控制(五)

简介: 教程来源 https://tmywi.cn Git高级技巧助你高效协作:储藏(stash)暂存未完成修改;交互式rebase优雅整理提交历史;cherry-pick跨分支复用关键提交;bisect二分定位Bug根源;submodule管理外部依赖;hooks自动化质量管控。

六、高级技巧:让 Git 效率翻倍

6.1 储藏(Stash)
临时保存工作区的修改,去处理更紧急的事情。

# 保存当前修改
git stash
git stash save "正在开发支付功能"  # 带描述

# 查看储藏列表
git stash list
# stash@{0}: On main: 正在开发支付功能
# stash@{1}: On main: 修复Bug

# 恢复最近的储藏(并保留)
git stash apply

# 恢复并删除
git stash pop

# 恢复指定的储藏
git stash apply stash@{1}

# 删除指定的储藏
git stash drop stash@{1}

# 清空所有储藏
git stash clear

# 创建分支从储藏
git stash branch new-feature

6.2 交互式 Rebase
交互式 rebase 可以在提交历史进入远程仓库前,对本地提交进行整理。

# 对最近3次提交进行操作
git rebase -i HEAD~3

交互式界面中可用的命令:
image.png
实战示例:合并多个提交

# 原始历史
a1b2c3d 添加支付功能(第三步)
e4f5g6h 添加支付功能(第二步)
i7j8k9l 添加支付功能(第一步)

# 执行 git rebase -i HEAD~3
# 编辑界面中修改:
pick i7j8k9l 添加支付功能(第一步)
squash e4f5g6h 添加支付功能(第二步)
squash a1b2c3d 添加支付功能(第三步)

# 保存后会弹出新界面让你编辑最终的提交信息
# 最终历史:
x9y8z7w 添加支付功能

6.3 Cherry-pick
选择性地将其他分支的某个提交应用到当前分支。

# 复制一个提交到当前分支
git cherry-pick <commit-hash>

# 复制多个提交
git cherry-pick <commit1> <commit2> <commit3>

# 复制一段连续的提交
git cherry-pick <start>..<end>

# 编辑提交信息
git cherry-pick -e <commit-hash>

# 不自动提交(方便调整)
git cherry-pick -n <commit-hash>

使用场景:

将修复 Bug 的提交应用到多个分支

从开发分支提取特定功能到主分支

恢复误删的提交

6.4 Bisect:二分查找 Bug
当你知道某个 Bug 存在,但不确定是哪个提交引入时,用 git bisect 二分查找。

# 开始二分查找
git bisect start

# 标记当前版本有问题
git bisect bad

# 标记已知的好版本
git bisect good <commit-hash>

# Git 会自动切换到一个中间版本,测试后标记
git bisect bad   # 如果当前版本有问题
git bisect good  # 如果当前版本正常

# 重复直到找到引入 Bug 的提交
# 找到后退出
git bisect reset

6.5 子模块(Submodule)
在一个 Git 仓库中引入另一个 Git 仓库。

# 添加子模块
git submodule add https://github.com/example/lib.git libs/example-lib

# 克隆包含子模块的仓库
git clone --recursive https://github.com/example/main-repo.git

# 更新子模块
git submodule update --init --recursive

# 更新子模块到最新
cd libs/example-lib
git pull origin main
cd ..
git add libs/example-lib
git commit -m "更新子模块"

# 查看子模块状态
git submodule status

6.6 钩子(Hooks)
Git 钩子是在特定事件发生时自动执行的脚本。

# 钩子存放在 .git/hooks/ 目录下
ls .git/hooks/
# pre-commit.sample
# commit-msg.sample
# post-commit.sample
# ...

# 创建 pre-commit 钩子(提交前运行测试)
cat > .git/hooks/pre-commit << 'EOF'
#!/bin/sh
npm run test
if [ $? -ne 0 ]; then
    echo "测试失败,提交被阻止"
    exit 1
fi
EOF

chmod +x .git/hooks/pre-commit

常用钩子:
image.png
来源:
https://hllft.cn

相关文章
|
1月前
|
人工智能 弹性计算 数据可视化
阿里云 Hermes Agent 全流程可视化一键部署方案
Hermes Agent 是开源自主AI智能体框架,具备自进化、持久记忆、多模型兼容与多端接入能力。阿里云提供全流程可视化一键部署方案,仅需两步(购买预装服务器 + 配置API Key),最快分钟级上线,助力个人开发者与小团队快速落地AI应用。
348 3
|
2月前
|
存储 人工智能 安全
2026最新版OpenClaw汉化中文版一键安装包 Windows全流程无代码安装教程(包含新安装包)
本文带来2026年最新适配Windows系统的OpenClaw汉化中文版一键安装教程,全程无需输入任何代码命令,纯图形化界面操作,新手也能轻松上手。教程详细讲解最新汉化安装包的下载、解压、启动、路径配置、自动部署及初始化全流程,针对Windows 10/11系统优化,解决安装过程中常见的安全拦截、路径报错、依赖缺失等问题,附带专属新安装包下载与完整避坑指南,确保一次安装成功。
|
10天前
|
人工智能 自然语言处理 数据挖掘
什么是OPD一人部门?未来企业为什么会出现“超级员工”
OPD(一人部门)指个人借助AI智能体协同完成传统多岗位工作的新组织形态。AI降低执行成本,推动企业从“人力扩张”转向“AI协同”,催生具备全流程能力的“超级员工”。OPC中国正构建AI时代的新职业与组织能力体系。(239字)
|
1月前
|
人工智能 IDE API
阿里云DevBox一键部署Hermes Agent与Claude Code:从零搭建AI驱动开发闭环完整教程
2026年,AI驱动开发已经从辅助工具进化为可独立完成全流程任务的数字化开发团队。Hermes Agent与Claude Code的组合,正是当前最成熟、最稳定、最贴近真实工程场景的AI协同开发架构。阿里云基于云开发机DevBox推出的一键部署方案,让普通开发者无需关心底层环境配置,几分钟内即可拥有一支具备需求分析、方案设计、代码编写、调试优化、经验沉淀能力的全天候AI开发团队。
323 5
|
1月前
|
人工智能 供应链 安全
2026 年全球网络安全威胁态势与关键技术防御研究
本文基于Security Affairs 2026年第576期情报,系统分析Linux无文件远控(QLNX)、Dirty Frag内核提权、AI供应链投毒、Bluekit工业化钓鱼及关键基础设施混合攻击等新型威胁,揭示其内存化、智能化、武器化趋势;提出漏洞治理、供应链管控、钓鱼防御、终端加固、应急响应“五位一体”纵深防御框架,并提供可复现代码与工程化方案。(239字)
568 6
|
1月前
|
人工智能 监控 知识图谱
AI搜索时代的流量重构:Geo优化精细化运营标准与实战路径
本文将深入探讨在Geo优化中如何实现精细化运营,解析其核心标准与执行路径。
140 5
|
2月前
|
人工智能 Cloud Native 应用服务中间件
Higress 加入 CNCF:保障 Nginx Ingress 迁移,提供企业级 AI 网关
我们期待与 CNCF 生态携手,共建安全、可扩展、AI 友好的云原生基础设施。
468 24
|
1月前
|
智能设计 人工智能 数据可视化
入选顶会ACM!阿里云DashChat重塑数据看板设计:从辅助工具进阶为智能设计伙伴
近日,阿里云DataV团队的论文《DashChat: Interactive Authoring of Performance Dashboard Design Prototypes through Conversation with LLM-Powered Agents》在经历多轮评审后,正式被计算机人机交互领域的全球顶级学术会议——ACM CHI 2026录用,将在会议全新改革的Poster赛道上进行宣读和展示。
158 2
入选顶会ACM!阿里云DashChat重塑数据看板设计:从辅助工具进阶为智能设计伙伴
|
1月前
|
API Windows
OpenClaw(小龙虾) 连接 阿里云百炼图文教程
本指南详解OpenClaw Windows版对接阿里云百炼的完整流程:从账号准备、API Key创建与保存,到OpenClaw内配置密钥、测试连通性及模型调用,全程图文指引,零基础10分钟即可完成接入,畅享Qwen3系列大模型能力。(239字)
OpenClaw(小龙虾) 连接 阿里云百炼图文教程
|
1月前
|
NoSQL Java MongoDB
Spring Boot 整合 MongoDB 最佳实践:CRUD、分页、事务、索引全覆盖
Spring Data MongoDB提供了简洁的API,让开发者能够专注于业务逻辑,快速构建高性能的应用。通过合理使用MongoDB的特性,可以充分发挥其文档数据库的优势。
105 6