用途:通过 glab 命令行管理 GitLab 仓库与项目,覆盖克隆、创建、复刻、查看、更新、归档、删除、搜索、转移及成员管理等操作。
主要能力:
- 仓库生命周期:glab repo clone、glab repo create、glab repo fork、glab repo view、glab repo update、glab repo delete、glab repo transfer、glab repo archive download。
- 远程管理:glab repo remote add <namespace/project> 解析项目引用并添加 Git 远程,可用 --name/-n 指定名称,--protocol ssh|https/-p 覆盖协议。
- 本地分支清理:glab repo prune 删除 GitLab 合并请求已合并的本地分支,支持 --dry-run、--yes、--exclude、--merged;不会删除远端分支,且跳过受保护分支、默认分支和当前分支。
- 成员管理:glab repo members list/add/remove/update,用 --access-level 指定权限。
- 批量与搜索:glab repo clone -g 组名、glab repo search、glab repo list(--member/--mine)。
- 结构化输出:glab repo contributors --output json 或 -F json,便于自动化。
必要用法示例:
- 克隆:glab repo clone group/project
- 克隆 wiki:glab repo clone --wiki group/project
- 创建:glab repo create my-new-project --public
- 复刻:glab repo fork upstream/project
- 添加远程:glab repo remote add group/project --name upstream
- 清理分支:glab repo prune --dry-run 然后 glab repo prune --yes
限制与注意事项:
- 仓库 URL 会先校验再交给 Git;接受的 scheme 与 scp 风格 SSH 语法被允许,选项式字符串、remote-helper 传输、空白与控制字符会被拒绝;若克隆/复刻/远程操作因无效远程 URL 失败,应检查项目/主机元数据,而非绕过校验。
- --wiki 不能与按组克隆的 --group 同用;项目 wiki 关闭时会明确失败。
- 自管主机带端口时,配置键基于含端口的完整主机名;若解析到错误 API 主机,需检查 glab config path 中的主机键是否含端口。
- --merged 更快但会漏掉非快进祖先的 squash/rebase 合并,建议默认使用 GitLab 查询模式。
- 组克隆可能因仓库过多超时,可改为克隆特定仓库。
- 部分项目禁用复刻或启用转移保护。
完整命令文档见 references/commands.md;相关技能包括 glab-auth、glab-ssh-key、glab-deploy-key、glab-config、glab-variable。