# Branches API > 原文:[https://docs.gitlab.com/ee/api/branches.html](https://docs.gitlab.com/ee/api/branches.html) * [List repository branches](#list-repository-branches) * [Get single repository branch](#get-single-repository-branch) * [Protect repository branch](#protect-repository-branch) * [Unprotect repository branch](#unprotect-repository-branch) * [Create repository branch](#create-repository-branch) * [Delete repository branch](#delete-repository-branch) * [Delete merged branches](#delete-merged-branches) # Branches API[](#branches-api "Permalink") 该 API 在[存储库分支上运行](../user/project/repository/branches/index.html) . **提示:**另请参阅[受保护的分支机构 API](protected_branches.html) . ## List repository branches[](#list-repository-branches "Permalink") 从项目中获取存储库分支的列表,按名称的字母顺序排序. **注意:**如果可公开访问该存储库,则无需身份验证即可访问此端点. ``` GET /projects/:id/repository/branches ``` Parameters: | Attribute | Type | Required | Description | | --- | --- | --- | --- | | `id` | integer/string | yes | 身份验证用户拥有[的项目的](README.html#namespaced-path-encoding) ID 或[URL 编码路径](README.html#namespaced-path-encoding) . | | `search` | string | no | 返回包含搜索字符串的分支列表. 您可以使用`^term`和`term$`查找分别以`term`开头和结尾的分支. | 请求示例: ``` curl --header "PRIVATE-TOKEN: " "https://gitlab.example.com/api/v4/projects/5/repository/branches" ``` 响应示例: ``` [ { "name": "master", "merged": false, "protected": true, "default": true, "developers_can_push": false, "developers_can_merge": false, "can_push": true, "web_url": "http://gitlab.example.com/my-group/my-project/-/tree/master", "commit": { "author_email": "john@example.com", "author_name": "John Smith", "authored_date": "2012-06-27T05:51:39-07:00", "committed_date": "2012-06-28T03:44:20-07:00", "committer_email": "john@example.com", "committer_name": "John Smith", "id": "7b5c3cc8be40ee161ae89a06bba6229da1032a0c", "short_id": "7b5c3cc", "title": "add projects API", "message": "add projects API", "parent_ids": [ "4ad91d3c1144c406e50c7b33bae684bd6837faf8" ] } }, ... ] ``` ## Get single repository branch[](#get-single-repository-branch "Permalink") 获取单个项目存储库分支. **注意:**如果可公开访问该存储库,则无需身份验证即可访问此端点. ``` GET /projects/:id/repository/branches/:branch ``` Parameters: | Attribute | Type | Required | Description | | --- | --- | --- | --- | | `id` | integer/string | yes | 身份验证用户拥有[的项目的](README.html#namespaced-path-encoding) ID 或[URL 编码路径](README.html#namespaced-path-encoding) . | | `branch` | string | yes | 分支名称. | 请求示例: ``` curl --header "PRIVATE-TOKEN: " "https://gitlab.example.com/api/v4/projects/5/repository/branches/master" ``` 响应示例: ``` { "name": "master", "merged": false, "protected": true, "default": true, "developers_can_push": false, "developers_can_merge": false, "can_push": true, "web_url": "http://gitlab.example.com/my-group/my-project/-/tree/master", "commit": { "author_email": "john@example.com", "author_name": "John Smith", "authored_date": "2012-06-27T05:51:39-07:00", "committed_date": "2012-06-28T03:44:20-07:00", "committer_email": "john@example.com", "committer_name": "John Smith", "id": "7b5c3cc8be40ee161ae89a06bba6229da1032a0c", "short_id": "7b5c3cc", "title": "add projects API", "message": "add projects API", "parent_ids": [ "4ad91d3c1144c406e50c7b33bae684bd6837faf8" ] } } ``` ## Protect repository branch[](#protect-repository-branch "Permalink") 有关保护存储库分支的信息,请参见[`POST /projects/:id/protected_branches`](protected_branches.html#protect-repository-branches) . ## Unprotect repository branch[](#unprotect-repository-branch "Permalink") 有关取消保护存储库分支的信息,请参见[`DELETE /projects/:id/protected_branches/:name`](protected_branches.html#unprotect-repository-branches) . ## Create repository branch[](#create-repository-branch "Permalink") 在存储库中创建一个新分支. ``` POST /projects/:id/repository/branches ``` Parameters: | Attribute | Type | Required | Description | | --- | --- | --- | --- | | `id` | integer | yes | 身份验证用户拥有[的项目的](README.html#namespaced-path-encoding) ID 或[URL 编码路径](README.html#namespaced-path-encoding) . | | `branch` | string | yes | 分支名称. | | `ref` | string | yes | 分支名称或提交 SHA 以从中创建分支. | 请求示例: ``` curl --request POST --header "PRIVATE-TOKEN: " "https://gitlab.example.com/api/v4/projects/5/repository/branches?branch=newbranch&ref=master" ``` 响应示例: ``` { "commit": { "author_email": "john@example.com", "author_name": "John Smith", "authored_date": "2012-06-27T05:51:39-07:00", "committed_date": "2012-06-28T03:44:20-07:00", "committer_email": "john@example.com", "committer_name": "John Smith", "id": "7b5c3cc8be40ee161ae89a06bba6229da1032a0c", "short_id": "7b5c3cc", "title": "add projects API", "message": "add projects API", "parent_ids": [ "4ad91d3c1144c406e50c7b33bae684bd6837faf8" ] }, "name": "newbranch", "merged": false, "protected": false, "default": false, "developers_can_push": false, "developers_can_merge": false, "can_push": true, "web_url": "http://gitlab.example.com/my-group/my-project/-/tree/newbranch" } ``` ## Delete repository branch[](#delete-repository-branch "Permalink") 从存储库中删除一个分支. **注意:**如果发生错误,将提供说明消息. ``` DELETE /projects/:id/repository/branches/:branch ``` Parameters: | Attribute | Type | Required | Description | | --- | --- | --- | --- | | `id` | integer/string | yes | 身份验证用户拥有[的项目的](README.html#namespaced-path-encoding) ID 或[URL 编码路径](README.html#namespaced-path-encoding) . | | `branch` | string | yes | 分支名称. | 请求示例: ``` curl --request DELETE --header "PRIVATE-TOKEN: " "https://gitlab.example.com/api/v4/projects/5/repository/branches/newbranch" ``` ## Delete merged branches[](#delete-merged-branches "Permalink") Will delete all branches that are merged into the project’s default branch. **注意:**此操作不会删除[受保护的分支](../user/project/protected_branches.html) . ``` DELETE /projects/:id/repository/merged_branches ``` Parameters: | Attribute | Type | Required | Description | | --- | --- | --- | --- | | `id` | integer/string | yes | 身份验证用户拥有[的项目的](README.html#namespaced-path-encoding) ID 或[URL 编码路径](README.html#namespaced-path-encoding) . | 请求示例: ``` curl --request DELETE --header "PRIVATE-TOKEN: " "https://gitlab.example.com/api/v4/projects/5/repository/merged_branches" ```