分支.md 5.2 KB
Newer Older
Lab机器人's avatar
Lab机器人 已提交
1
# 分支[](#分支 "Permalink")
Lab机器人's avatar
readme  
Lab机器人 已提交
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108

分支是项目工作树的版本. 您为所做的每组相关更改创建一个分支. 这样可以使每组更改彼此独立,从而可以并行进行更改,而不会互相影响.

将更改推送到新分支后,您可以:

*   创建[合并请求](../../merge_requests/index.html)
*   执行内联代码审查
*   与团队[讨论](../../../discussions/index.html)实施情况
*   使用[Review Apps](../../../../ci/review_apps/index.html)预览提交到新分支的更改.

使用[GitLab Starter](https://about.gitlab.com/pricing/) ,您还可以请求经理的[批准](../../merge_requests/merge_request_approvals.html) .

有关使用 GitLab UI 管理分支的更多信息,请参见:

*   [Default branches](#default-branch)
*   [Create a branch](../web_editor.html#create-a-new-branch)
*   [Protected branches](../../protected_branches.html#protected-branches)
*   [Delete merged branches](#delete-merged-branches)
*   [Branch filter search box](#branch-filter-search-box)

您也可以使用[命令行](../../../../gitlab-basics/start-using-git.html#create-a-branch)管理分支.

观看视频[GitLab Flow](https://www.youtube.com/watch?v=InKNIvky2KE) .

也可以看看:

*   [Branches API](../../../../api/branches.html) ,有关使用 GitLab API 在存储库分支上进行操作的信息.
*   [GitLab Flow](../../../../university/training/gitlab_flow.html) documentation.
*   [Git](../../../../topics/git/index.html)和 GitLab [入门](../../../../topics/git/index.html) .

## Default branch[](#default-branch "Permalink")

创建新[项目时](../../index.html) ,GitLab 会将`master`设置为存储库的默认分支. 您可以在项目的**设置>存储库**下选择另一个分支作为项目的默认分支.

通过[问题关闭模式](../../issues/managing_issues.html#closing-issues-automatically)直接从合并请求中[关闭问题时](../../issues/managing_issues.html#closing-issues-automatically) ,目标是项目的**默认分支** .

初始还对默认分支进行了[保护,以](../../protected_branches.html#protected-branches)防止意外删除和强制推送.

### Custom initial branch name[](#custom-initial-branch-name-core-only "Permalink")

版本历史

*   在 GitLab 13.2 中[引入](https://gitlab.com/gitlab-org/gitlab/-/issues/221013) .
*   它部署在默认情况下启用的功能标志后面.
*   在 GitLab.com 上启用了它.
*   不能根据项目启用或禁用它.
*   建议用于生产.
*   对于 GitLab 自我管理的实例,GitLab 管理员可以选择[禁用它](#enable-or-disable-custom-initial-branch-name-core-only) .

默认情况下,当您在 GitLab 中创建新项目时,初始分支称为`master` . 对于自我管理的实例,GitLab 管理员可以将初始分支名称自定义为其他名称. 这样,此后创建的每个新项目都将从自定义分支名称开始,而不是`master` . 为此:

1.  转到 **在管理区域>设置>存储库中** ,展开**默认初始分支名称** .
2.  将默认的初始分支更改为您选择的自定义名称.
3.  **保存更改**.

#### Enable or disable custom initial branch name[](#enable-or-disable-custom-initial-branch-name-core-only "Permalink")

正在设置默认的初始分支名称,但已准备好用于生产. 它部署在**默认情况下启用**的功能标志的后面. [有权访问 GitLab Rails 控制台的 GitLab 管理员](../../../../administration/feature_flags.html)可以选择为您的实例禁用它.

禁用它:

```
Feature.disable(:global_default_branch_name) 
```

要启用它:

```
Feature.enable(:global_default_branch_name) 
```

## Compare[](#compare "Permalink")

要比较存储库中的分支:

1.  导航到项目的存储库.
2.  在边栏中选择**存储库>比较** .
3.  使用[分支过滤器搜索框](#branch-filter-search-box)选择要比较的[分支](#branch-filter-search-box)
4.  单击" **比较** "以内联查看更改:

[![compare branches](img/b4e4d114d9b2244a7848961617e05a95.png)](img/compare_branches.png)

## Delete merged branches[](#delete-merged-branches "Permalink")

在 GitLab 8.14 中[引入](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/6449) .

[![Delete merged branches](img/6de450be845a1f48a3feae9ce8e7be6e.png)](img/delete_merged_branches.png)

此功能允许合并的分支被批量删除. 作为此操作的一部分,只有已合并[但未受保护的](../../protected_branches.html)分支才会被删除.

清理合并请求时未自动删除的旧分支尤其有用.

## Branch filter search box[](#branch-filter-search-box "Permalink")

在 GitLab 11.5 中[引入](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/22166) .

[![Branch filter search box](img/f380fbb3646558d8becf561df5894c38.png)](img/branch_filter_search_box.png)

此功能使您可以快速搜索和选择分支. 搜索结果按以下顺序显示:

*   名称与搜索字词完全匹配的分支.
*   名称包含搜索词的其他分支,按字母顺序排序.

有时,当您有数百个分支时,可能需要更灵活的匹配模式. 在这种情况下,您可以使用以下方法:

*   `^feature`将仅匹配以'feature'开头的分支名称.
*   `feature$` will only match branch names that end with ‘feature’.