Skip to Content
文档工作台分支、标签与远端

分支、标签与远端

「分支」(⌘4)把分支、标签、远端、Stash、worktree 等对象收在同一列,用分段控件切换。每类对象都支持搜索框过滤。

分支

  • 本地与远程分支分组显示,当前分支与上游 ahead / behind 数量直接标出;
  • 复制分支名或托管平台链接;
  • 与当前分支比较;
  • 查看哪些分支包含某个提交;
  • 重命名分支;
  • 删除本地分支:只会删除已完全合并的分支,被 worktree 检出的分支会跳过;未合并的分支需要先合并或手工处理;
  • 多选删除远程分支;「删除分支及远程分支」会先删本地,成功后再删远端。

合并

合并前可以选默认行为、--no-ff 或 squash。

执行前会先用 git merge-tree 预览:列出合并基点、双方 ahead / behind 数量与冲突路径,不写工作区、不写索引、不动任何分支。看到冲突可以先处理,再真正合并。合并冲突的处理见冲突;进行中的合并可以从横幅继续或中止。

标签

  • 创建轻量标签、附注标签或签名标签;
  • 验证 GPG / SSH 签名,结果显示为有效、无效或未签名;
  • 重命名标签;
  • 推送单个标签或全部标签;
  • 多选删除本地标签;远程标签需要单独删除;
  • 复制标签链接,或在托管平台打开。

远端

  • 添加、编辑、重命名、删除远端;重命名会同步远程跟踪分支与上游配置;
  • 清理远程跟踪分支:删除远端已不存在的分支对应的引用,本地分支保留;
  • 从任意远端分支拉取,把 HEAD 发布为指定远程分支;
  • 推送时选择具体远端。

所有的出站路径都会经过推送预检,见同步。

Stash

  • 创建:可写说明,可包含未跟踪文件,也可只暂存已暂存的内容;
  • 部分 stash:把选中片段或单个文件移入新的 stash,其余改动留在工作区;
  • 应用或弹出时可以同时恢复原来的暂存状态;
  • 从 stash 恢复单个文件或选中片段,索引与 stash 条目保持不变;
  • 从 stash 创建分支;
  • 查看 stash 中某个文件的版本;
  • 多选删除 stash,每条都会先写恢复快照;
  • 按说明过滤 stash 列表。

应用或弹出时如果发生冲突,stash 条目会保留,不会丢失。

Worktree

  • 从 HEAD 或任意提交创建工作树,可同时新建分支,也可以游离 HEAD;
  • 在标签页里打开链接工作树;
  • 锁定、解锁、移动、修复路径;
  • 清理已失效的条目;
  • 多选移除工作树。

路径不存在时列表会标出「路径不存在」,可以在修复里填入移动后的实际路径。

Bisect

  • 从某条提交开始 bisect,把它标记为 bad;
  • 手动标记 good / bad / skip,横幅显示剩余步骤;
  • 自动 bisect:给定范围与命令,Git 在每个候选提交上运行它,退出码 0 表示 good、1–127 表示 bad、125 表示跳过;
  • 取消运行会停止命令并保留可继续的范围,不会自动重置。

自动 bisect 会在每个检出的提交上执行你给的命令,只运行你信任的代码。

LFS

  • 查看与编辑 LFS 跟踪模式,提交 .gitattributes 后团队共享;
  • 拉取当前仓库缺失的 LFS 对象;
  • 锁定与解锁文件,支持查看持有人并强制解锁;
  • 仓库健康检查会提示 git-lfs 缺失或仍是指针的文件。

子模块

  • 添加子模块,指定 URL、路径与可选分支;
  • 更新全部子模块,或更新到远端分支;
  • 合并远端更改,保留子模块里的本地提交;
  • 同步 .gitmodules 中的 URL;
  • 移除子模块:去初始化并删除,.git/modules 下的对象留给 Git 清理;
  • 在新标签页里打开子模块仓库。

子模块指针变更在 diff 里单独显示,可以在嵌套仓库中查看它的历史。

稀疏检出

  • 以 cone 模式维护目录列表;
  • 应用后,模式之外已跟踪的文件会从工作区移除,但仍保留在 Git 中;
  • 关闭稀疏检出会把所有已跟踪文件重新检出。

操作前需要确认,确认框里会写明会影响多少个文件。

Hooks

  • 列出仓库里已安装的 hooks,可编辑内容、启用或停用;
  • 从内置示例安装;
  • 提交遇到 hook 失败时,可以在确认后跳过 hook 继续提交。

Hook 由 Git 执行,应用只负责读写文件与触发提交。

最后更新于