如何用 GitButler but move 命令把已有分支堆叠(stack)到另一个分支之上或解除堆叠

发布时间:2026/9/14 1:23:30

如何用 GitButler but move 命令把已有分支堆叠(stack)到另一个分支之上或解除堆叠 如何用 GitButler but move 命令把已有分支堆叠stack到另一个分支之上或解除堆叠【免费下载链接】gitbutlerThe GitButler version control client, backed by Git, powered by Tauri/Rust/Svelte项目地址: https://gitcode.com/GitHub_Trending/gi/gitbutler当你有两个已经存在的分支其中一个是建立在另一个之上的代码比如前端功能依赖后端接口GitButler 的but move命令可以直接把这个分支堆叠stack到依赖分支之上反过来用--unstack参数就能把分支从堆叠中拆出来恢复成独立分支。整个过程不需要git rebase --onto也不需要删除分支重建。适用前提仓库中已经安装 GitButler CLIbut并且当前仓库已经用but setup转换成了 GitButler 管理的 workspace普通 Git 仓库用 but setup 初始化worktree 内无法运行but setup。两个分支必须都已存在——如果子分支还不存在应该用but branch new name --above parent直接创建而不是move。先确认两个分支当前的 stack 归属在动手前用but status查看分支、stack 和提交的全局状态but status输出里每个 stack 单独列出每行第一个 token 是该行的 CLI ID。下面这段输出是 workflow examples 中文档示例# Stack 1: feature/backend (bu) — 2 commits # Stack 2: feature/frontend (bv) — 1 commit看到两个分支各自处于独立的 stack 中就可以执行堆叠。注意两点but status显示的短 ID如bu、bv只在当前 workspace 快照内有效做move这类写操作时必须用完整分支名短 ID 只适合即时只读查看。分支上带有(merged upstream)标记说明该分支已 land合入上游move等写操作会拒绝操作已 land 的分支和提交需要先but pull清理或换分支。把已有分支堆叠到另一个分支之上命令形式是but move 子分支全名 --above 父分支全名让子分支依赖父分支but move feature/frontend --above feature/backend这会把feature/frontend整个分支移到feature/backend之上两个分支进入同一个 stack。对应 concepts 中的模型main ── feature/backend ── feature/frontend (base) (stacked)执行后用but status验证文档示例的输出为# Stack 1: feature/backend → feature/frontend (stacked)即两个分支从两个独立 stack 合并进同一个 stackfeature/frontend排在feature/backend之上。验证通过后可以继续正常开发提交时用完整分支名指定目标but commit -b feature/backend -m Add caching layer file-id but commit -b feature/frontend -m Add dialog component file-idfile-id从but diff或but status -fv的当前输出中复制不要手写。与创建新堆叠分支的区别分支已存在but move branch --above parent-branch本文场景。分支不存在but branch new name --above parent-branch只有子分支还没建时用它。文档明确警告不要用uncommitbranch deletebranch new --above的组合来模拟堆叠——git 分支名在删除后仍会残留而且这条路径会丢失工作成果也不要用but undo来解除堆叠正确方式见下一节。解除堆叠把分支从 stack 上拆下来当两个分支不再需要互相依赖例如后端已合入 main前端可以独立存在用--unstack把分支拆下来but move feature/frontend --unstack命令成功时的输出形如来自 move 命令测试快照 的文档示例其中C是测试分支名Unstacked branch C再跑一次but status验证拆下来的分支成为独立的 stack其余分支保持在原 stack 中。测试快照中的文档示例如下三分支 stack 拆掉顶部C之后╭┄ g0 [B] ● wwm add B │ ├┄ h0 [A] ● tpm add A ├╯ │ ╭┄ i0 [C] ● wlx add C ├╯也就是说C单独成了一个 stackA → B仍是同一个 stack。--unstack不带参数写成but move --unstack branch与but move branch --unstack等价。参数边界与容易踩的限制目标参数只有一个--above、--below、--branch、--unstack四选一且必填。对分支branch这个 source 而言只有--above和--unstack适用--below和无值--branch只接受 commit 或已提交变更作为 source。一次只能 move 一个分支but move A B --unstack这类多分支写法是错误。无值--branch等价于--unstackbut move branch --branch会把该分支拆成独立 stack。but move的另一个常见用法是重排提交but move commit-id --below commit-id用的是 commit ID 而不是分支名。分支堆叠用分支全名提交重排用 commit ID两者不要混。如果but commit报 Cannot commit: N changes could not be applied说明变更依赖了另一个分支的提交且该分支不在同一 stack 中错误信息的 Hint 会给出精确的恢复命令but move your-branch --above dependency-branch执行后重试原提交即可。移动后出现冲突或需要推送时move属于历史编辑操作可能产生冲突冲突不会中断操作rebase 总会完成发生冲突的提交会在输出和but status中标记为{conflicted}。此时按 oldest-first 逐个处理but resolve commit-id进入解析模式、编辑文件去掉全部冲突标记、but resolve finish收尾解析期间禁止git add、git commit等 git 写命令只能用but resolve系列命令加直接编辑文件。堆叠关系确定后发布整条 stack只需选顶层分支推送一次but push会连带推送其祖先分支不要逐分支循环but push feature/frontend创建 PR 同理对顶层分支执行but pr new feature/frontend -tGitButler 会自动推送祖先分支并设置正确的 PR base 和 stack 元信息用gh pr create会丢失这套 stack 行为。更多命令细节可查仓库内的 reference.mdbut move一节和 SKILL.mdStack existing branches 一节也可以直接运行but skill reference查看与当前二进制一致的命令参考。【免费下载链接】gitbutlerThe GitButler version control client, backed by Git, powered by Tauri/Rust/Svelte项目地址: https://gitcode.com/GitHub_Trending/gi/gitbutler创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
延伸阅读

更多相关文章

2026/9/14 1:23:30

交管12123模拟器开发:像素级还原与动态表单技术解析

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

2026/9/14 1:23:30

Modbus协议逆向与工控安全取证实战指南

搞工控的人,天然会对Modbus有感情。这门上世纪70年代末诞生的协议,到今天依然是PLC、仪表、传感器之间通信的“通用语”。可正因为太老、太开放,它也成了工控安全取证里绕不开的焦点:一旦现场控制系统被入侵、PLC被篡改、上位机被…

2026/9/14 2:13:31

货物贸易进出口:条码如何打通跨境链路

货物贸易进出口,到底在统计什么 实物商品的进口与出口活动,构成了国际贸易中最基础的一环。货物进出口总额,指的是在一定时期内,一国或地区全部实际进出口商品的总金额,它直接反映出一国对外贸易的规模与发展水平。 中…

2026/9/14 2:13:31

嵌入式入门避坑指南:从裸机点亮到ARM Linux真实开发路径

1. 这不是退学,是及时止损:一个嵌入式初学者的真实踩坑时间线“花两个月学了嵌入式,已退学,不想有人再上当”——这句话在技术社区里像一块烧红的铁,烫得人不敢直视。它背后没有情绪宣泄,只有一份被压缩到极…

2026/9/14 2:13:31

Android Compose热重载技术解析与实践指南

1. Compose热重载技术解析最近在Android开发社区掀起一阵热潮的Compose HotSwan技术,本质上是一种实时代码更新机制。作为一名长期奋战在Android开发一线的工程师,我亲测这项技术确实能实现"改完代码1秒生效"的效果,彻底告别了传统…

2026/9/14 2:13:31

基于YOLOv8的电梯电动车禁入识别系统实现与部署

简介:基于YOLOv8的智慧社区电梯电动车禁入识别系统,是一套面向深度学习与计算机视觉方向毕业设计、课程设计的完整方案,专为电梯场景中电动车禁入需求设计。压缩包共8个文件,以代码脚本、模型权重和说明文档为主,其中三…

2026/9/14 2:13:31

MATLAB图像配准算法实战:光流法与频域相位相关详解

简介:一份面向MATLAB开发者与图像处理学习者的图像配准算法代码包,聚焦多帧图像对齐、运动估计与变换参数求解等核心问题,适合在医学成像、遥感或计算机视觉场景中快速上手实践。压缩包共26个文件,主体为24个.m脚本,覆…

2026/9/14 2:08:31

Python进阶:函数式编程与模块化开发实战

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

2026/9/13 0:01:16

拯救者Y7000黑屏故障排查与维修实战指南

1. 项目概述:一台黑屏的拯救者Y7000,到底卡在哪一步? 联想拯救者Y7000系列笔记本,从2018年第一代搭载i5-8300H开始,到后来的i7-9750H、i7-10750H、i5-11400H,再到2023年款的R7-7840HS,它始终是学…

2026/9/14 0:03:22

KCF目标跟踪算法与OTB工程实现:毕业设计实战解析

简介:这是一份基于KCF核相关滤波算法、融合尺度池与抗遮挡处理的目标检测跟踪MATLAB完整源码,主要面向计算机相关专业准备毕业设计、课程设计或期末大作业的学生,也适合需要项目实战练习的初学者。源码在OTB数据集上完成验证,能够…

2026/9/14 0:03:22

语音情感识别实战:Keras实现LSTM、CNN、SVM与MLP多模型对比

简介:面向语音情感识别入门与进阶开发者,这份基于Keras的项目源码完整实现了LSTM、CNN、SVM、MLP四种模型,兼容Python3.8与Keras/TensorFlow2环境。压缩包内含49个文件,大小约70.31MB,主体包括Python脚本、yaml/json配…

2026/9/12 6:29:36

USB Type-C PCB布局分区设计:电源、高速信号与PD协议全攻略

做硬件这行,Type-C接口算是典型的“看着简单,做起来全坑”的东西。光引脚就24个,高低速信号、电源、控制线全部塞在一个小小的连接器里,如果PCB布局不做规划,打样回来基本就是“插上没反应”、“高速掉线”、“静电一打…

2026/9/12 14:32:17

系统编程学习原型如何补齐稳定性边界

系统编程学习原型如何补齐稳定性边界预算有限时&#xff0c;我先优化明显多余的复制&#xff0c;而不是猜测性地换容器。用借用传递只读数据通常就能减少分配&#xff1a; fn parse(line: &str) -> Result<Item, Error> { /* ... */ }用基准确认热点确实在分配&am…

2026/9/13 11:18:28

雨花区哪家财务公司代理记账比较好?

在雨花区&#xff0c;企业处理财税事务常常面临诸多挑战&#xff0c;选择一家靠谱的财务公司至关重要。湖南巨勤财务管理咨询有限公司就是本地正规实体财税服务机构&#xff0c;深耕本地工商财税行业多年&#xff0c;熟悉当地工商局、税务局最新政策与申报流程。主营公司注册、…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
咨询二维码