Git高级工作流

3小时前更新 2 00
Git高级工作流Git高级工作流
Git高级工作流

技能简介

Git Workflows 提供超越基础 add/commit/push 的高级 Git 操作,涵盖交互式变基、二分查找定位缺陷、工作树并行开发、reflog 恢复丢失提交、子树/子模块管理、复杂合并冲突解决、跨分支拣选提交以及大型单体仓库的稀疏检出等场景。

能做什么

  • 清理合并前的提交历史(交互式变基)
  • 定位引入缺陷的具体提交(bisect 二分查找)
  • 同时处理多个分支互不干扰(worktree 工作树)
  • 恢复误删的提交或撤销错误操作(reflog)
  • 跨仓库共享代码(subtree/submodule)
  • 解决复杂的合并冲突
  • 跨分支或 fork 拣选特定提交(cherry-pick)
  • 高效处理大型单体仓库(sparse checkout)

使用说明

安装要求

需预先安装 Git 命令行工具。验证安装:

git --version

交互式变基(整理提交历史)

# 对最近5个提交进行交互式变基
git rebase -i HEAD~5

# 变基到 main 分支(自分叉以来的所有提交)
git rebase -i main

编辑器中可使用的命令:pick(保留)、reword(修改消息)、edit(暂停修改)、squash(合并保留消息)、fixup(合并丢弃消息)、drop(删除)。

# 自动整理 fixup 提交
git commit --fixup=a1b2c3d -m "Fix typo"
git rebase -i --autosquash main

# 中止或继续变基
git rebase --abort      # 取消并恢复原状
git rebase --continue   # 解决冲突后继续
git rebase --skip       # 跳过当前提交

二分查找定位缺陷(Bisect)

# 启动二分查找
git bisect start
git bisect bad          # 标记当前提交有缺陷
git bisect good v1.2.0  # 标记已知正常版本

# 测试中间版本后标记
git bisect good   # 无缺陷
git bisect bad    # 有缺陷

# 自动运行测试脚本
git bisect start HEAD v1.2.0
git bisect run ./test-for-bug.sh

# 结束返回原分支
git bisect reset

工作树并行开发(Worktree)

# 为现有分支创建工作树
git worktree add ../myproject-hotfix hotfix/urgent-fix

# 创建新分支并建立工作树
git worktree add ../myproject-feature -b feature/new-thing

# 查看工作树列表
git worktree list

# 移除工作树
git worktree remove ../myproject-hotfix
git worktree prune      # 清理失效引用

Reflog 恢复丢失提交

# 查看所有引用变更记录
git reflog

# 恢复到指定状态
git reset --hard HEAD@{2}

# 恢复已删除的分支
git reflog show feature/old-branch
git checkout -b recovered-branch abc123

子树与子模块管理

# 添加子树(将外部仓库合并到子目录)
git subtree add --prefix=vendor/lib https://github.com/org/lib.git main --squash

# 更新子树
git subtree pull --prefix=vendor/lib https://github.com/org/lib.git main --squash

# 添加子模块
git submodule add https://github.com/org/shared.git shared/
git submodule update --init --recursive

稀疏检出(大型单体仓库)

# 启用稀疏检出
git sparse-checkout init --cone

# 只检出指定目录
git sparse-checkout set packages/core packages/utils

# 添加更多目录
git sparse-checkout add packages/api

输入与输出

见下方输入与输出表格。

项目内容
输入Git 仓库路径;目标分支名或提交哈希;变基范围(如 HEAD~5);测试脚本路径(bisect 自动化时);工作树目录路径;子树/子模块仓库 URL
输出整理后的提交历史;定位到的缺陷提交哈希;独立的工作树目录;恢复的提交或分支;合并后的子目录代码;部分检出的仓库文件
适用人群熟悉 Git 基础的开发者;需要维护干净提交历史的团队;排查回归缺陷的工程师;同时处理多任务的开发者;管理多仓库依赖的架构师;操作大型代码库的程序员
不包含Git 基础命令教学(add/commit/push/pull);图形化 Git 客户端操作;特定 CI/CD 平台集成配置;代码审查流程规范;Git LFS 大文件管理

 

风险提示

  • 交互式变基会重写提交历史,已推送的提交变基后需强制推送,可能影响协作者
  • reflog 默认保留90天,过期后无法恢复
  • 子模块需要额外初始化步骤,CI/CD 环境易遗漏导致构建失败
  • 强制推送(–force-with-lease 除外)可能覆盖他人工作
  • 工作树占用额外磁盘空间,大量工作树可能导致存储压力

来源信息

原始链接:https://github.com/openclaw/skills/tree/main/skills/gitgoodordietrying/git-workflows/SKILL.md
来源类型:开源技能库

数据统计

相关导航

暂无评论

none
暂无评论...