gitlab-repo
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseRepository Skill
仓库操作技能
Repository and project operations for GitLab using the CLI.
glab使用 CLI进行GitLab仓库与项目操作。
glabQuick Reference
快速参考
| Operation | Command | Risk |
|---|---|---|
| Clone repo | | - |
| Fork repo | | ⚠️ |
| View repo | | - |
| Create repo | | ⚠️ |
| Search repos | | - |
| Archive repo | | ⚠️⚠️ |
| Delete repo | | ⚠️⚠️⚠️ |
| List contributors | | - |
Risk Legend: - Safe | ⚠️ Caution | ⚠️⚠️ Warning | ⚠️⚠️⚠️ Danger
| 操作 | 命令 | 风险 |
|---|---|---|
| 克隆仓库 | | - |
| 复刻仓库 | | ⚠️ |
| 查看仓库 | | - |
| 创建仓库 | | ⚠️ |
| 搜索仓库 | | - |
| 归档仓库 | | ⚠️⚠️ |
| 删除仓库 | | ⚠️⚠️⚠️ |
| 列出贡献者 | | - |
风险说明: - 安全 | ⚠️ 注意 | ⚠️⚠️ 警告 | ⚠️⚠️⚠️ 危险
When to Use This Skill
何时使用此技能
ALWAYS use when:
- User wants to clone, fork, or create repositories
- User mentions "repo", "repository", "project", "clone", "fork"
- User wants to manage project settings
NEVER use when:
- User wants to work with specific repo content (use git directly)
- User wants to manage deploy keys (use gitlab-deploy-key skill)
请务必在以下场景使用:
- 用户需要克隆、复刻或创建仓库
- 用户提及“repo”、“repository”、“project”、“clone”、“fork”
- 用户需要管理项目设置
请勿在以下场景使用:
- 用户需要处理仓库特定内容(直接使用git)
- 用户需要管理部署密钥(使用gitlab-deploy-key技能)
Available Commands
可用命令
Clone Repository
克隆仓库
bash
glab repo clone <repo> [directory] [options]Arguments:
- - Repository path, URL, or project ID
<repo> - - Optional local directory name
[directory]
Options:
| Flag | Description |
|---|---|
| Clone all repos in a group |
| Clone into subdirectory based on namespace |
| Include/exclude archived repos (with -g) |
| Fetch all pages of projects (with -g) |
Examples:
bash
undefinedbash
glab repo clone <repo> [directory] [options]参数:
- - 仓库路径、URL或项目ID
<repo> - - 可选的本地目录名称
[directory]
选项:
| 标志 | 描述 |
|---|---|
| 克隆组内所有仓库 |
| 根据命名空间克隆到子目录 |
| 包含/排除已归档仓库(搭配-g使用) |
| 获取所有分页的项目(搭配-g使用) |
示例:
bash
undefinedClone by path
通过路径克隆
glab repo clone gitlab-org/cli
glab repo clone gitlab-org/cli
Clone by URL
通过URL克隆
glab repo clone https://gitlab.com/gitlab-org/cli
glab repo clone https://gitlab.com/gitlab-org/cli
Clone into specific directory
克隆到指定目录
glab repo clone gitlab-org/cli my-glab
glab repo clone gitlab-org/cli my-glab
Clone by project ID
通过项目ID克隆
glab repo clone 4356677
glab repo clone 4356677
Clone preserving namespace structure
保留命名空间结构克隆
glab repo clone gitlab-org/cli -p
glab repo clone gitlab-org/cli -p
Creates: gitlab-org/cli/
生成目录: gitlab-org/cli/
Clone all repos in a group
克隆组内所有仓库
glab repo clone -g mygroup --paginate
glab repo clone -g mygroup --paginate
Clone only non-archived repos from group
克隆组内未归档的仓库
glab repo clone -g mygroup --archived=false --paginate
undefinedglab repo clone -g mygroup --archived=false --paginate
undefinedFork Repository
复刻仓库
bash
glab repo fork <repo> [options]Options:
| Flag | Description |
|---|---|
| Clone the fork after creating |
| Name for the forked project |
| Path for the forked project |
| Add a remote for the fork |
Examples:
bash
undefinedbash
glab repo fork <repo> [options]选项:
| 标志 | 描述 |
|---|---|
| 创建复刻后克隆仓库 |
| 复刻项目的名称 |
| 复刻项目的路径 |
| 为复刻添加远程仓库 |
示例:
bash
undefinedFork a repository
复刻仓库
glab repo fork owner/repo
glab repo fork owner/repo
Fork and clone
复刻并克隆
glab repo fork owner/repo --clone
glab repo fork owner/repo --clone
Fork with custom name
自定义名称复刻
glab repo fork owner/repo --name="my-fork"
glab repo fork owner/repo --name="my-fork"
Fork and add remote
复刻并添加远程仓库
glab repo fork owner/repo --remote
undefinedglab repo fork owner/repo --remote
undefinedView Repository
查看仓库
bash
glab repo view [repo] [options]Options:
| Flag | Description |
|---|---|
| Open repository in browser |
| View specific branch |
Examples:
bash
undefinedbash
glab repo view [repo] [options]选项:
| 标志 | 描述 |
|---|---|
| 在浏览器中打开仓库 |
| 查看指定分支 |
示例:
bash
undefinedView current repository info
查看当前仓库信息
glab repo view
glab repo view
View specific repo
查看指定仓库
glab repo view gitlab-org/cli
glab repo view gitlab-org/cli
Open in browser
在浏览器中打开
glab repo view --web
glab repo view --web
View specific branch
查看指定分支
glab repo view --branch=develop
undefinedglab repo view --branch=develop
undefinedCreate Repository
创建仓库
bash
glab repo create [name] [options]Options:
| Flag | Description |
|---|---|
| Repository name |
| Repository description |
| Create in specific group/namespace |
| Make repository public |
| Make repository private |
| Make repository internal |
| Initialize with README |
| Clone after creation |
Examples:
bash
undefinedbash
glab repo create [name] [options]选项:
| 标志 | 描述 |
|---|---|
| 仓库名称 |
| 仓库描述 |
| 在指定组/命名空间下创建 |
| 设置仓库为公开 |
| 设置仓库为私有 |
| 设置仓库为内部可见 |
| 初始化时添加README文件 |
| 创建后克隆仓库 |
示例:
bash
undefinedCreate repository interactively
交互式创建仓库
glab repo create
glab repo create
Create with name and description
指定名称和描述创建
glab repo create my-project -d "My awesome project"
glab repo create my-project -d "My awesome project"
Create public repo in group
在组内创建公开仓库
glab repo create my-project --group=myteam --public
glab repo create my-project --group=myteam --public
Create and clone
创建并克隆仓库
glab repo create my-project --clone --readme
undefinedglab repo create my-project --clone --readme
undefinedSearch Repositories
搜索仓库
bash
glab repo search <query> [options]Options:
| Flag | Description |
|---|---|
| Results per page |
| Get all results |
Examples:
bash
undefinedbash
glab repo search <query> [options]选项:
| 标志 | 描述 |
|---|---|
| 每页显示结果数 |
| 获取所有结果 |
示例:
bash
undefinedSearch for repos
搜索仓库
glab repo search "cli tools"
glab repo search "cli tools"
Search with more results
搜索更多结果
glab repo search "gitlab" --per-page=50
undefinedglab repo search "gitlab" --per-page=50
undefinedArchive Repository
归档仓库
bash
glab repo archive [repo] [options]Archives a repository (makes it read-only).
Examples:
bash
undefinedbash
glab repo archive [repo] [options]归档仓库(设置为只读)。
示例:
bash
undefinedArchive current repo
归档当前仓库
glab repo archive
glab repo archive
Archive specific repo
归档指定仓库
glab repo archive owner/repo
undefinedglab repo archive owner/repo
undefinedDelete Repository
删除仓库
bash
glab repo delete [repo] [options]Warning: This permanently deletes the repository and all its data!
Options:
| Flag | Description |
|---|---|
| Skip confirmation prompt |
Examples:
bash
undefinedbash
glab repo delete [repo] [options]警告: 此操作将永久删除仓库及其所有数据!
选项:
| 标志 | 描述 |
|---|---|
| 跳过确认提示 |
示例:
bash
undefinedDelete repo (will prompt for confirmation)
删除仓库(将提示确认)
glab repo delete owner/repo
glab repo delete owner/repo
Delete without confirmation (dangerous!)
无需确认直接删除(危险操作!)
glab repo delete owner/repo --yes
undefinedglab repo delete owner/repo --yes
undefinedList Contributors
列出贡献者
bash
glab repo contributors [repo] [options]Options:
| Flag | Description |
|---|---|
| Results per page |
| Sort order: name, email, commits |
Examples:
bash
undefinedbash
glab repo contributors [repo] [options]选项:
| 标志 | 描述 |
|---|---|
| 每页显示结果数 |
| 排序方式:name、email、commits |
示例:
bash
undefinedList contributors for current repo
列出当前仓库的贡献者
glab repo contributors
glab repo contributors
List with sorting
按提交数排序列出
glab repo contributors --order=commits
undefinedglab repo contributors --order=commits
undefinedTransfer Repository
转移仓库
bash
glab repo transfer <repo> <new-namespace>Transfer a repository to another namespace.
Examples:
bash
undefinedbash
glab repo transfer <repo> <new-namespace>将仓库转移到其他命名空间。
示例:
bash
undefinedTransfer to different group
转移到其他组
glab repo transfer myrepo newgroup
undefinedglab repo transfer myrepo newgroup
undefinedCommon Workflows
常见工作流
Workflow 1: Fork and Contribute
工作流1:复刻并贡献代码
bash
undefinedbash
undefined1. Fork the repository
1. 复刻仓库
glab repo fork upstream/project --clone
glab repo fork upstream/project --clone
2. Add upstream remote
2. 添加上游远程仓库
cd project
git remote add upstream https://gitlab.com/upstream/project.git
cd project
git remote add upstream https://gitlab.com/upstream/project.git
3. Create feature branch
3. 创建特性分支
git checkout -b feature/my-change
git checkout -b feature/my-change
4. Make changes, commit, push
4. 进行修改、提交、推送
git add . && git commit -m "Add feature"
git push -u origin feature/my-change
git add . && git commit -m "Add feature"
git push -u origin feature/my-change
5. Create MR to upstream
5. 向上游仓库创建合并请求
glab mr create --target-branch=main
undefinedglab mr create --target-branch=main
undefinedWorkflow 2: Batch Clone Team Repos
工作流2:批量克隆团队仓库
bash
undefinedbash
undefinedClone all non-archived repos from team group
克隆团队组内所有未归档的仓库
glab repo clone -g myteam --archived=false --paginate -p
glab repo clone -g myteam --archived=false --paginate -p
This creates:
将生成以下目录结构:
myteam/
myteam/
repo1/
repo1/
repo2/
repo2/
...
...
undefinedundefinedWorkflow 3: Create New Project
工作流3:创建新项目
bash
undefinedbash
undefined1. Create the repository
1. 创建仓库
glab repo create awesome-project
-d "An awesome new project"
--group=myteam
--readme
--clone
-d "An awesome new project"
--group=myteam
--readme
--clone
glab repo create awesome-project
-d "An awesome new project"
--group=myteam
--readme
--clone
-d "An awesome new project"
--group=myteam
--readme
--clone
2. Set up the project
2. 配置项目
cd awesome-project
cd awesome-project
Add initial files...
添加初始文件...
3. View it in browser
3. 在浏览器中查看
glab repo view --web
undefinedglab repo view --web
undefinedTroubleshooting
故障排查
| Issue | Cause | Solution |
|---|---|---|
| Authentication failed | Invalid/expired token | Run |
| Repo not found | Invalid path or no access | Check repo path and permissions |
| Clone failed | SSH keys not configured | Use HTTPS or configure SSH keys |
| Cannot fork | Already forked or no permission | Check existing forks |
| Cannot delete | Not owner or maintainer | Request owner to delete |
| 问题 | 原因 | 解决方案 |
|---|---|---|
| 认证失败 | 令牌无效/过期 | 运行 |
| 仓库未找到 | 路径无效或无访问权限 | 检查仓库路径和权限 |
| 克隆失败 | 未配置SSH密钥 | 使用HTTPS或配置SSH密钥 |
| 无法复刻 | 已复刻或无权限 | 检查现有复刻仓库 |
| 无法删除 | 不是所有者或维护者 | 请求所有者删除 |
Related Documentation
相关文档
- Safeguards
- Quick Reference
- 安全防护
- 快速参考